nginx+pip2pi搭建内网pip源
需求:部署服务时需要在内网服务器上利用pip安装第三方库,没有网络的情况下需要手动上传,比较麻烦也不利于管理。
解决办法:利用nginx+pip2pi一台有网的服务器上搭建供内网服务器使用的pip源
流程:下载需要的第三方库及其依赖库->利用pip2pi创建源文件->通过nginx发布源
下载第三方库
mkdir /usr/local/offline4pip3
# 下载单个离线包及其依赖
pip3 download -d /usr/local/offline4pip3/ <packege_name>
# 批量下载离线包及其依赖
pip3 download -d /usr/local/offline4pip3/ -r requirement.txt
# 清华源
-i https://pypi.tuna.tsinghua.edu.cn/simple
创建源文件
1. 安装pip2pi
pip3 install pip2pi
2. 创建源文件
dir2pi /usr/local/offline4pip3
# 执行后在offlinepip3文件夹下生成simple文件夹
nginx发布源
1. 开放端口(以9921为例)
firewall-cmd --zone=public --add-port=9921/tcp --permanent
firewall-cmd --reload
2. 下载并安装nginx
# 下载
wget http://nginx.org/download/nginx-1.14.2.tar.gz
# 解压
tar zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
# 配置
./configure --prefix=/usr/local/nginx_offline4pip3/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre
# 编译安装
make && make install
3. 配置nginx
vim /usr/local/nginx_offline4pip3/conf/nginx_offline4pip3.conf
# nginx_offline4pip3.conf内容如下
events {
accept_mutex on;
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 9921 default_server;
listen [::]:9921 default_server;
server_name 192.168.0.39; # localhost
location / {
root /usr/local/Offline4pip3;
autoindex on;
}
}
}
4. 运行nginx发布pip源
/usr/local/nginx_offlien4pip3/sbin/nginx -c /usr/local/nginx_offlien4pip3/conf/nginx_offline4pip3.conf
# 查看端口是否被监听
netstat -ntlp |grep 9921
5. 测试
curl http://192.168.0.39:9921/simple/
测试的时候发现老是飘到81端口去,检查了后才发现以前设置了全局代理,通过unset http_proxy取消了代理,但是是暂时的。最后修改/etc/environment永久的取消了代理。
通过内网pip源安装第三方库及其依赖
# 安装单个离线包
pip3 install <packege_name> --index-url=http://192.168.0.39:9921/simple/
# 批量安装离线包
pip3 install -r requirement.txt --index-url=http://192.168.0.39:9921/simple/
版权声明:本文为zhifangyou7864原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。