前一段時間開發須要常常使用 pip 下載,雖然把 pip 源改爲了國內源,但我對速度仍是不滿意,更爲重要的是集成
測試環境是離線的,要在集成測試環境開發顯然須要搭建本身的本地 pip 源。在使用 devpi 以前我曾使用過 pip2pi,但有個 bug 致使離線環境下的 tox 命令老是失敗,因此最後採用 devpi 搭建 pip 源。這裏使用 docker 部署,方便又快速,若是不當心弄崩了也只須要從新運行 docker 容器就行了。若是你的環境沒有安裝 docker 能夠自行搜素安裝方法,好比 docker 社區的文檔 install docker。若是你是 Centos 用戶,可使用如下方法安裝docker
sudo yum update sudo yum -y install docker sudo systemctl enable docker sudo systemctl start docker
接下來使用使用 docker 部署一個 Python 本地鏡像源,咱們可使用 docker hub 上已有的鏡像,我這裏選擇的是
muccg/devpi 這個鏡像vim
# 設置 devpi 服務器管理員密碼 DEVPI_PASSWORD = 123 mkdir -p /src/docker/devpi mkdir /tmp/wheelhouse docker run -d --name devpi \ --publish 3141:3141 \ --volume /tmp/wheelhouse:/wheelhouse --volume /srv/docker/devpi:/data \ --env=DEVPI_PASSWORD=$DEVPI_PASSWORD \ --restart always \ muccg/devpi
接着先在本地下載好所需的wheel包,requirements.txt文件內容即爲咱們須要的 Python 庫列表bash
pip wheel --wheel-dir /tmp/wheelhouse -r requirements.txt
若是從 pip 源下載的庫已是 wheel 包的話文件將會被直接放在 /tmp/wheelhouse
內,若是是
tar 包,pip 會先 build 出 wheel 包,這可能須要一些時間。下載完成後 wheelhouse
內容相似
於服務器
ll /tmp/wheelhouse total 524K -rwxrwxrwx 1 rookie rookie 155K Apr 6 23:40 certifi-2019.3.9-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 131K Apr 6 23:40 chardet-3.0.4-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 58K Apr 6 23:40 idna-2.8-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 57K Apr 6 23:40 requests-2.21.0-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 116K Apr 6 23:40 urllib3-1.24.1-py2.py3-none-any.whl
下載完成後若是本地環境安裝了devpi客戶端,能夠直接上傳 wheel 包,不過因爲咱們在建立容器時已經
把 wheelhouse
文件夾掛載進去,也能夠在在容器裏直接操做微信
# 進入容器 docker exec -it -u root devpi bash # 登錄並上傳 devpi use http://<host_ip>:3141/root/public --set-cfg devpi login root 123 devpi upload --from-dir /wheelhouse
上傳完成後可使用 http://<host_ip>:3141
查看 pip 本地源服務器狀態。
若要臨時使用可使用 pip install 的 --index
和 --trusted-host
選項測試
pip install --index http://<host_ip>:3141/root/public/+simple/ \ --trusted-host <host_ip>
或者修改 pip.conf 文件永久使用ui
# vim ~/.pip/pip.conf [global] index_url = http://<host_ip>:3141/root/public/+simple/ trusted-host = <host_ip> [search] index = http://<host_ip>:3141/root/public/
最後,歡迎關注個人殭屍微信公衆號 :) CodeWar url