前一段时间开发须要常常使用 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