阿里云上搭建pypi私有服务器

写在前面

pip安装的python包,默认从 https://pypi.python.org/pypi 上下载的。但是有时候公司内部使用的组件,不方便开放到外网,这时候我们就要搭建自己的pypi服务器了。通过调研,我选择了pypiserver

安装

服务器是一台阿里云的ubuntu。
以我的习惯,每个服务我都会建一个单独的用户,然后代码部署在用户的根目录下。首先用root用户创建pypi用户:

~# useradd pypi
~# mdkir /home/pypi
~# chown pypi:pypi /home/pypi

然后切换到pypi用,并进入/home/pypi
为了不污染全局的python环境,一般我们用 virtualenv来安装各种组件:

~$ virtualenv .venv
~$ source .venv/bin/activate
~$ pip install pypiserver 
~$ mkdir packages # 建立存放packages的文件夹

配置

上传package需要用户名密码,密码文件使用命令htpasswd命令生成

~$ pip install passlib
~$ apt-get install apache2-utils
~$ htpasswd -sc .htaccess user   # 回车后会提示输入密码,输入123456

启动

pypi-server应该在后台运行,简单的话可用使用nohup命令,但一般都用supervisor来管理。在当前目录创建pypi-server.conf,内容如下:

[program:pypi-server]
directory=/home/pypi/
command=/home/pypi/.venv/bin/pypi-server -p 10086 -P /home/pypi/.htaccess /home/pypi/packages
autostart=true
autorestart=true
redirect_stderr=true

其中-p选项指定侦听的端口,-P选项指定密码文件。
将该文件软链到supervisor的配置文件夹下:

  ~$ cd /etc/supervisor/conf.d/
  ~$ sudo ln -s /home/pypi/pypi-supervisor.conf pypi-supervisor.conf

重启supervisor

~$sudo supervisorctl reload

查看pypi-server运行情况:

~$sudo supervisorctl status

可见pypi-server已经运行了:

pypi-server                      RUNNING    pid 27289, uptime 16:41:19

因为是阿里云的服务器,我们还需要在安全组中打开这个端口的访问限制。
然后浏览器访问http://服务器ip:10086,会有如下的欢迎页:

image.png

下一篇介绍私有服务器的使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容