使用 devpi 搭建本地 pypi 源


使用 devpi 搭建本地 pypi 源


可以使用 docker 快速部署一個 Python 本地鏡像源

# 設置 devpi 服務器管理員密碼DEVPI_PASSWORD = 123mkdir -p /src/docker/devpimkdir /tmp/wheelhousedocker run -d --name devpi \\    --publish 3141:3141 \\    --volume /tmp/wheelhouse:/wheelhouse    --volume /srv/docker/devpi:/data \\    --env=DEVPI_PASSWORD=$DEVPI_PASSWORD \\    --restart always \\    muccg/docker-devpi

接著先在本地下載好所需的wheel包,requirements.txt文件內容即為我們需要的 Python 庫列表

pip wheel --wheel-dir /tmp/wheelhouse -r requirements.txt

如果從 pip 源下載的庫已經是 wheel 包的話文件將會被直接放在 /tmp/wheelhouse 內,如果是tar 包,pip 會先 build 出 wheel 包,這可能需要一些時間。下載完成後 wheelhouse 內容類似於

ll /tmp/wheelhousetotal 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://:3141/root/public --set-cfgdevpi login root 123devpi upload --from-dir /wheelhouse

上傳完成後可以使用 http:// :3141 查看 pip 本地源服務器狀態。若要臨時使用可以使用 pip install 的 --index 和 --trust-host 選項

pip install --index http://:3141/root/public/+simple/ \\            --trusted-host 

或者修改 pip.conf 文件永久使用

# vim ~/.pip/pip.conf[global]index_url = http://:3141/root/public/+simple/trusted-host = [search]index = http://:3141/root/public/


分享到:


相關文章: