使用 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/


分享到:


相關文章: