使用 devpi 搭建 PyPI server

本文详细介绍了如何安装、配置和使用devpi服务器,包括通过systemd管理devpi服务,配置Nginx代理,以及设置个人PyPI镜像源。此外,还讲解了账户管理和客户端应用的使用,如上传、删除包,以及安装源的配置。

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

安装及配置

安装依赖包

pip install devpi devpi-server devpi-web

初始化

devpi-init --serverdir /var/www/devpi

配置 systemd

修改文件:vim /etc/systemd/system/devpi.service

[Unit]
Description=A minimal PyPI server for use with pip/easy_install.
After=network.target

[Service]
Type=simple
# systemd requires absolute path here too.
PIDFile=/var/run/devpi.pid
User=root
Group=root

ExecStart=/usr/local/bin/devpi-server --host 0.0.0.0 --port 3141 --serverdir /var/www/devpi
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

WorkingDirectory=/var/www/devpi

TimeoutStartSec=3
RestartSec=5

[Install]
WantedBy=multi-user.target

运行 devpi-server

systemctl daemon-reload
systemctl start devpi
systemctl enable devpi

配置 Nginx

修改文件:vim /etc/nginx/conf.d/nginx-devpi.conf

server {
    server_name www.devpi.com;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
    ssl_certificate /etc/nginx/ssl/server.cer;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
    ssl_prefer_server_ciphers on;

    charset     utf-8;
    client_max_body_size 10M;

    access_log  /var/log/nginx/access.log;
    
    location /devpi/ {
        proxy_pass  http://localhost:3141/;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-outside-url $scheme://$http_host/devpi;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

运行 nginx -s reload 使配置生效。

配置参考:devpi-gen-config

It is highly recommended to use a configuration file for devpi-server, see --configfile option.
wrote gen-config/crontab
wrote gen-config/net.devpi.plist
wrote gen-config/launchd-macos.txt
wrote gen-config/nginx-devpi.conf
wrote gen-config/supervisor-devpi.conf
wrote gen-config/supervisord.conf
wrote gen-config/devpi.service
wrote gen-config/windows-service.txt

账户配置

修改默认镜像源

devpi use https://www.devpi.com/devpi/
devpi login root --password=''
devpi index pypi type=mirror mirror_url=https://pypi.douban.com/simple mirror_web_url_fmt=https://pypi.doubanio.com/simple/{name}/

创建/删除用户

devpi use https://www.devpi.com/devpi/
devpi user -c devpiuser password=''
devpi login devpiuser --password=''
devpi index -c dev bases=root/pypi

devpi user devpiuser -y --delete  # 删除用户

客户端应用

登录并上传

devpi use https://www.devpi.com/devpi/
devpi login devpiuser --password=''
devpi use dev

devpi upload  # setup.py 目录
devpi upload --from-dir dist

查看包

devpi list example

查找包

pip search --index https://www.devpi.com/devpi/ example

删除过时的包

devpi remove -y example==1.0.0

安装源配置

# pip config set global.index-url https://pypi.doubanio.com/simple
# pip config set global.extra-index-url https://www.devpi.com/devpi/devpiuser/dev/+simple/
devpi use --set-cfg devpiuser/dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值