前一段时间开发需要经常使用 pip 下载,虽然把 pip 源改成了国内源,但我对速度还是不满意,更为重要的是集成
测试环境是离线的,要在集成测试环境开发显然需要搭建自己的本地 pip源。在使用 devpi 之前我曾使用过 pip2pi,但有个 bug 导致离线环境下的 tox 命令总是失败,所以最后采用 devpi 搭建 pip源。这里使用 docker 部署,方便又快速,如果不小心弄崩了也只需要重新运行docker容器就好了。如果你的环境没有安装 docker 可以自行搜素安装方法,比如 docker 社区的文档 install docker(https://docs.docker.com/install/)。如果你是 centos 用户,可以使用以下方法安装
sudo yum update
sudo yum -y install docker
sudo systemctl enable docker
sudo systemctl start docker接下来使用使用 docker 部署一个 python 本地镜像源,我们可以使用 docker hub 上已有的镜像,我这里选择的是
muccg/devpi(https://hub.docker.com/r/muccg/devpi) 这个镜像
# 设置 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/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/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 文件永久使用
# 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/
挂机宝是不是就是云服务器云服务器硬盘读取特别慢我在西部域名批量买了一口价购买的域名没发过户不能解析咋弄阿里云服务器配置之nginx域名列表里好几个域名不见了新站如何增加索引量提升,新站上线SEO优化操作云浮高价服务器厂家批发价格电脑制作excel表格全步骤 电脑零基础怎么制作excel表格