制作pip源(按需,非镜像方式)

本文介绍如何使用pip2pi工具快速同步所需的Python包至本地仓库,并通过Nginx发布这些资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全部下载所有的镜像文件有时候确实是比较耗时的,那么也可以仅同步所需的Pypi包。
下面我们用一个叫做 pip2pi 的工具仅同步所需的Pypi包

安装pip2pi工具

$ pip install pip2pi

$ git clone https://github.com/wolever/pip2pi
$ cd pip2pi
$ python setup.py install

创建存放软件包的仓库

$ sudo mkdir /var/spool/pypi-mirror

下载软件包

单个下载,比如:

$ pip2tgz /var/spool/pypi-mirror/ routes==1.12.3

批量下载,比如:

$ pip2tgz /var/spool/pypi-mirror/ -r requirements.txt

requirements.txt文件是一个待下载软件包列表,比如openstack需求的包列表。

建立索引:

$ dir2pi /var/spool/pypi-mirror/

更新版本

若软件需求有更新,可以如下更新索引:

$ pip2acmeco uliweb=0.2.6
$ pip2acmeco -r list/requirements.txt

发布

最后,将库地址配置给http服务就行了,方法同apt的类似,也可以采用自己的服务软件,比如nginx配置,这里介绍nginx的配置方法。
给Nginx服务器添加虚拟主机配置:

server {
    listen 80;
    server_name [hostname];
    root /var/spool/pypi-mirror;
    location /{
        autoindex on;
        autoindex_exact_size off; #显示文件的大小
        autoindex_localtime on; #显示文件时间
        #limit_rate_after 5m; #5分钟后下载速度限制为200k
        limit_rate 200k;
    }
    access_log logs/pypi.hostname.com.access.log main;
}

当然也可以像apt源的部署方法一样,做一个软链接给apache2,或者配置apache

$ sudo ln -s /var/spool/pypi-mirror /var/www/html/pypi

完。

转载于:https://www.cnblogs.com/sixloop/p/make-pip-repo-on-demand.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值