使用docker+devpi搭建本地pypi源的方法
作者:Rookie 发布时间:2023-11-03 03:52:44
前一段时间开发需要经常使用 pip 下载,虽然把 pip 源改成了国内源,但我对速度还是不满意,更为重要的是集成
测试环境是离线的,要在集成测试环境开发显然需要搭建自己的本地 pip 源。在使用 devpi 之前我曾使用过 pip2pi,但有个 bug 导致离线环境下的 tox 命令总是失败,所以最后采用 devpi 搭建 pip 源。这里使用 docker 部署,方便又快速,如果不小心弄崩了也只需要重新运行 docker 容器就好了。如果你的环境没有安装 docker 可以自行搜素安装方法,比如 docker 社区的文档 install docker。如果你是 Centos 用户,可以使用以下方法安装
sudo yum update
sudo yum -y install docker
sudo systemctl enable docker
sudo systemctl start docker
接下来使用使用 docker 部署一个 Python 本地镜像源,我们可以使用 docker hub 上已有的镜像,我这里选择的是
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/
来源:https://segmentfault.com/a/1190000018781421
猜你喜欢
- find 命令主要用于查找目录和文件,可以指定多种参数进行匹配。用法:find +查找路径 +命令参数
- 在地方网站中比较成功的往往是一些分类信息站点,例如新疆地区的乌鲁木齐网、内蒙古地区的找查发网站,都是以发布各种信息为主,极大的丰富和方便了当
- DNS MX记录一定要放在A记录之前,否则和邮件后缀相匹配的域名没有指向邮件服务器,很有可能邮件服务器收不到邮件。DNS MX记录一定要放在
- 掌握软文推广方法是一个网络推广人员必备的技能之一,应该说软文推广时贯穿整个网络推广工作的,无论哪种推广方式都离不开软文。在硬广告不再强势的这
- 一、操作系统的选择FTP服务器首先是基于操作系统而运作的,因而操作系统本身的安全性就决定了FTP服务器安全性的级别。虽然Windows 98
- 网站管理员工具的有用特性之一就是能为您的网站调整设置,比如设置抓取速度或地理定位。我们一直致力于为您提供更多的设置,这些设置目前已经积累到可
- “摇头娃娃”是美图秀秀[点击下载]独家首创的功能,把人物头部抠下后套用在素材“身
- 1、常用的时间存储方式 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前
- 下载并解压此文件,放到您网站的根目录下,命名为 friendlink.登陆phpcms后台,模块位于网站根目录。注意:安装模块前
- 11月13日消息,在距离百度新广告系统百度推广专业版(凤巢)全面推出还有半个月之际。日前,百度商业运营副总裁沈皓瑜就新广告系统凤巢与媒体进行
- 我们以默认模板为例分析一下其模板样式,SupeSite 7.0 默认模板的样式表为 \templates\default\css\commo
- #最关键参数,默认为5,修改为0 表示不要重发net.ipv4.tcp_synack_retries = 0#半连接队列长度net.ipv4
- 解决了这两个问题,剩下的工作就简单了。从以上内容也可以说明一点,从内网不能发布IIS的FTP服务器,因为IIS既没有选项可以选择PASV端口
- 1、添加网页标题(title)。为每页内容写5-8个字的描述性标题。标题要简练,去掉“the,” “and,”这些不重要的词汇,要说明该页面
- {$ggas_text$}Simon已经在如何申请Goolge AdSense一文中跟大家介绍简单介绍和提示一点如何填写申请表如英译的相关资
- 没有人喜欢垃圾信息,除了制造者本人。如果你正运行着一个 WordPress 博客系统,你可能已经至少安装了一个垃圾信息控制部件,但
- 前言众所周知scrapy是Python中鼎鼎大名的爬虫框架,在安装scrapy过程中碰到了openssl某个文件找不到的问题,并进行了分析,
- 用IIS,php4和mysql的软件包是php-4.0.1pl2-Win32.zip、mysql-3.23.19-beta-win.zip。
- 作为一款流行的做图软件,美图秀秀已经能够完美的支持Windows7系统了。想必不少用户已经在Windows7系统下使用这款软件了吧。然而,在
- 另一个经常会碰到的问题是,网站被惩罚排名下降应该怎么办?首先应该确定你的网站是完全被封,还是只是排名下降。直接搜索一下域名或URL用site