使用pip2pi和nginx搭建私有pip镜像源方法

在内网环境下部署python开发环境,安装python第三方库比较麻烦,特别是安装需要多个依赖的库。一种比较好的解决方案是搭建一个本地的私有pip镜像源,有多个方案可以选择,比如pypiserver、pip2pi等,本文介绍使用python的pip2pi库,搭配nginx来搭建pip镜像源的方法。

目录

  • 1 搭建环境
  • 2 pip2pi安装
  • 3 python包下载
  • 4 创建索引
  • 5 nginx安装配置
    • 5.1 nginx安装
    • 5.2 nginx配置
  • 6 使用本地镜像源

1 搭建环境

Windows和Linux系统上都可以使用pip2pi来搭建pip镜像源,本文介绍在Linux上的部署方法,Windows系统类似。

使用的Linux发行版本为centos7:

$ uname -a
Linux Server 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

另外需要安装一下python环境,本文使用的python版本为3.10.11,安装编译方法可参考Python环境配置以及包管理方法详细介绍

2 pip2pi安装

使用pip命令安装:

pip3 install pip2pi

离线环境可先到有网的环境下载whl包:https://pypi.org/project/pip2pi/#files

然后离线安装:

$ pip3 install pip2pi-0.8.2-py2.py3-none-any.whl        

3 python包下载

在本地部署pypi源需要将python库下载到本地然后对其进行索引,因此库文件是很关键的,然而当前pypi官方源有巨量的python库文件,需要大量的空间(几十T)。如果你有足够的磁盘空间可以到pip国内镜像源下载。

实际使用中大多数python库用不上,仅下载团队项目开发所需要的那些库即可。

可使用pip download命令下载所需的包,具体下载方法参考Python环境配置以及包管理方法详细介绍

4 创建索引

将下载的python安装包放到/home/pythonlibs目录下,然后执行如下命令创建索引:

$ dir2pi /home/pythonlibs

执行成功后,/home/pythonlibs目录下会创建一个simple目录,对库文件进行了索引:

├── simple
│   ├── aerich
│   │   ├── aerich-0.7.2-py3-none-any.whl -> ../../aerich-0.7.2-py3-none-any.whl
│   │   └── index.html
│   ├── aiofiles
│   │   ├── aiofiles-0.5.0-py3-none-any.whl -> ../../aiofiles-0.5.0-py3-none-any.whl
│   │   └── index.html
...

比如aerich库的index.html内容为:

<a href='aerich-0.7.2-py3-none-any.whl'>aerich-0.7.2-py3-none-any.whl</a><br />

如果有多个aerich版本的库文件,会在index.html文件中显示。

5 nginx安装配置

如果只是临时使用,也可以直接使用Python内置模块http.server来创建一个简单的web服务,在包文件目录(/home/pythonlibs)执行如下命令即可:

python3 -m http.server 8086

Nginx是一个高性能的HTTP和反向代理web服务器,有很好的并发性能,下面介绍使用Nginx来发布镜像源。

5.1 nginx安装

到官网 https://nginx.org/en/download.html 下载nginx安装包nginx-1.24.0.tar.gz,安装步骤如下:

# 1. 解压
$ tar -xvzf nginx-1.24.0.tar.gz -C /home

# 2. 安装
$ cd /home/nginx-1.24.0/
$ ./configure --with-stream
$ make & make install

查看nginx安装路径:

$ whereis nginx
nginx: /usr/local/nginx

5.2 nginx配置

修改配置文件,其中我的Linux服务器IP地址为192.168.20.9:

$ vim /usr/local/nginx/nginx.conf

1、设置
user root;

2、配置pip源端口号以及路径
    server {
        listen      8086;
        server_name  192.168.20.9:8086;
        location / {
         	 root /home/pythonlibs;
			autoindex on;
			charset utf-8;
       }
     }

启动:

$ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
$ /usr/local/nginx/sbin/nginx -s reload

注意:需要关闭服务器的防火墙,或者开放指定端口号,我这里是8086端口号。

启动成功后可在浏览器访问地址:http://192.168.20.9:8086/simple/

在这里插入图片描述

页面列出了所有索引成功的python库,说明pypi本地源已经搭建成功。

6 使用本地镜像源

本地源部署完成后,可以使用pip命令从搭建的本地源下载安装python库:

$ pip3 install xlwt -i http://192.168.20.9:8086/simple --trusted-host 192.168.20.9
--THE END--
  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值