【Python】搭建pypi私仓

发布于:2024-05-30 ⋅ 阅读:(144) ⋅ 点赞:(0)

1. 下载依赖

pip install pypiserver # 命令安装 pypiserver 库
pip install passlib # passlib 包来读取 Apache htpasswd 文件
apt-get install -y apache2-utils

2. 生成密码

使用htpasswd库在指定路径/path/to/.pypipasswd生成密码文件

htpasswd -c /path/to/.pypipasswd root
New password: [输入密码]
Re-type new password: [再次输入密码]
Adding password for user root

3. 启动仓库

pypi-server run -P /path/to/.pypipasswd --fallback-url https://mirrors.aliyun.com/pypi/simple/ /opt/pypi/package_directory /opt/pypi/packages -p 8989

启动PyPI服务器,可以通过浏览器访问 http://localhost:8080/ 以打开PyPI服务器的默认欢迎页。
在这里插入图片描述

  • -P:指定密码文件
  • –fallback-url:本pypi-server找不到包时,到此源寻找
  • -p:启动端口

4. 服务化

首先编写启动脚本run-pypi.sh

#!/bin/bash
pypi-server run -P /path/to/.pypipasswd --fallback-url https://mirrors.aliyun.com/pypi/simple/ /opt/pypi/package_directory /opt/pypi/packages -p 8989

在/etc/systemd/system路径下新增文件 pypi-server.service3

[Unit]
Description=Pypi server
Requires=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/pypi/run-pypi.sh

[Install]
WantedBy=multi-user.target

启动、开机自启

systemctl start pypi-server.service
systemctl enable pypi-server.service

查看状态

systemctl status pypi-server.service
● pypi-server.service - Pypi server
     Loaded: loaded (/etc/systemd/system/pypi-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-05-27 12:10:47 CST; 2min 37s ago
   Main PID: 2406608 (run-pypi.sh)
      Tasks: 7 (limit: 464205)
     Memory: 61.8M
     CGroup: /system.slice/pypi-server.service
             ├─2406608 /bin/bash /opt/pypi/run-pypi.sh
             └─2406614 /usr/bin/python3 /usr/local/bin/pypi-server run -P /path/to/.pypipasswd --fallback-url https://mirrors.aliyun.com/pypi/simple/ /opt/pypi/package_directory /opt/pypi/packages -p 8989

May 27 12:10:47 tool-pnb-105-112 systemd[1]: Started Pypi server.

网站公告

今日签到

点亮在社区的每一天
去签到