基于PyPIServer创建私有Python软件包存储库 | 开发日志

基于PyPIServer创建私有Python软件包存储库

January 12, 2021

类别: Python 标签: Python pip PyPI PyPIServer Docker htpasswd

服务端

拉取PyPIServer镜像

  1. docker pull pypiserver/pypiserver:latest

部署PyPIServer

  • 只用于客户端下载(用作缓存加速)
    1. docker run -d --restart=always --name pypiserver -p 8080:8080 \
    2. -v /data/pypi-packages/:/data/packages \
    3. pypiserver/pypiserver:latest
  • 客户端不仅可以下载还可以上传(当我们自己开发了Python的软件时)
    1. #创建用户名和密码
    2. sudo apt install apache2-utils -y
    3. sudo mkdir /data/pypi-packages
    4. sudo htpasswd -sc /data/pypi-packages/htpasswd.txt wjj
    5. #当您需要再创建用户名时就不需要加参数 -c
    6. sudo htpasswd -s /data/pypi-packages/htpasswd.txt test
    7. #容器部署
    8. docker run -d --restart=always --name pypiserver -p 8080:8080 \
    9. -v /data/pypi-packages/:/data/packages \
    10. pypiserver/pypiserver:latest -P /data/packages/htpasswd.txt

下载软件包到私有存储库(局域网内加速)

  1. sudo pip3 download -d /data/pypi-packages/ tensorflow -i https://mirrors.aliyun.com/pypi/simple/
  2. sudo pip3 download -d /data/pypi-packages/ -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

客户端

使用私有存储库安装软件包

  • 配置 pip.conf
    1. nano ~/.config/pip/pip.conf
  1. [global]
  2. index-url = http://172.16.33.174:8080/simple/
  3. extra-index-url = https://mirrors.aliyun.com/pypi/simple/
  4. [install]
  5. trusted-host = 172.16.33.174
  • 安装
    1. pip3 install tensorflow
  1. Looking in indexes: http://172.16.33.174:8080/simple/, https://mirrors.aliyun.com/pypi/simple/
  2. Collecting tensorflow
  3. Downloading http://172.16.33.174:8080/packages/tensorflow-2.4.0-cp38-cp38-manylinux2010_x86_64.whl (394.8 MB)

上传开发的软件包到私有存储库

  • 配置 .pypirc
    1. nano ~/.pypirc
  1. [distutils]
  2. index-servers =
  3. local
  4. [local]
  5. repository: http://172.16.33.174:8080
  6. username: wjj
  7. password: 123456
  • 上传
    1. pip3 install twine
    2. twine upload onnxruntime_gpu-1.6.0-cp38-cp38-linux_x86_64.whl -r local
    3. twine upload onnxruntime_gpu-1.6.0-cp38-cp38-linux_x86_64.whl --repository-url http://172.16.33.174:8080/

参考资料