bandersnatch建立本地pip源

本文介绍如何使用Bandersnatch搭建私有的Python包索引(PyPI)服务器,并通过Apache与Nginx进行配置。文章还涉及Python 2.7与Python 3的包区别及如何配置不同版本的Python。

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

bandersnatch现在github上需要python3以上,不过2.7要改几行代码


httpd.conf

Listen 9600

NameVirtualHost 172.1.1.3

<VirtualHost 172.1.1.3>

DocumentRoot /pip3/pypi/web

ServerName pip3.a.com

<Directory /pip3/pypi/web>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow From All

</Directory>

</VirtualHost>


nginx.conf

server {

        listen  80;

        server_name     pip3.a.com;

       location / {

      proxy_pass http://172.1.1.3:9600/;   

}

}


server {

        listen       443;

        ssl on; 

        server_name     pip3.a.com;

        error_log       /opt/log/apipl.error;

        ssl_certificate   /etc/pki/tls/server.pem;

        ssl_certificate_key  /etc/pki/tls/server.key;

        ssl_session_cache    shared:SSL:1m;  

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

   ssl_session_timeout  5m;  

  ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

   ssl_prefer_server_ciphers  on;

location / {

       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  

        proxy_set_header Host $http_host;  

        proxy_set_header X-Forwarded-Proto https;  

        proxy_redirect off;  

        proxy_connect_timeout      240;  

        proxy_send_timeout         240;  

        proxy_read_timeout         240;  

        proxy_pass http://172.1.1.3:9600/;

}

}



其他机器引用


touch ~/.pip/pip.conf


[global]

index-url = http://pip3.a.com/simple

[install]

trusted-host = pip3.a.com




下载的包目录结构

[root@localhost pypi]# ls

generation  todo  web

[root@localhost pypi]# cd web

[root@localhost web]# ls

local-stats  packages  simple



pip install Mako

pip install --upgrade Mako


python2.7和Python3的包区别太大了



本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1975522,如需转载请自行联系原作者

使用 Bandersnatch 下载 PyPI 的镜像资后,可以通过 Nginx 提供 pip 包的下载服务。以下是具体的步骤: ### 1. 安装并配置 Bandersnatch 首先需要安装 `Bandersnatch` 并运行它来同步官方 PyPI 镜像到本地。 ```bash # 安装 bandersnatch pip install bandersnatch # 创建配置文件 bandersnatch mirror --root /path/to/mirror ``` 将镜像数据存储在一个指定目录(如 `/srv/pypi/simple`)。这个路径会成为后续 Nginx 指向的内容根目录。 --- ### 2. 配置 Nginx 来托管镜像站点 编辑你的 Nginx 配置文件,添加一个新的虚拟主机条目用于提供 pip访问。例如,在 `/etc/nginx/sites-available/pypi-mirror` 中创建以下内容: ```nginx server { listen 80; server_name pypi.yourdomain.com; root /srv/pypi; # 替换为你实际存放镜像的位置 index index.html; location /simple/ { autoindex on; # 开启自动索引功能以便列出所有可用包 types {} # 强制返回正确的 MIME 类型 (HTML) default_type text/html; } client_max_body_size 50M; # 根据需求调整上传大小限制 gzip_types application/json application/x-python-code; } ``` **注意**: 确保这里的 `root` 和 `location` 设置匹配了你通过 `bandersnatch` 同步下来的目录结构。 完成后重启 nginx 生效更改: ```bash sudo systemctl restart nginx ``` --- ### 3. 测试服务是否正常工作 尝试从新设置的服务拉取 Python 库验证其正确性: ```bash pip install -i http://pypi.yourdomain.com/simple some-package-name ``` 如果一切顺利,则说明已成功搭建了自己的私有 PIP 存储库,并能通过 NGINX 分发出去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值