搭建pypi私有源(项目公共模块)服务器

公司不同项目中用到了相同的模块,比如相同的取历史数据,以及一些相同的工具类。在不同项目中这些代码复制,黏贴,还会造成同一个bug需要修改多次和代码不一致导致的一系列问题,增加了维护成本。通常我们使用pip安装python包,都会默认从https://pypi.python.org/pypi上安装。但是由于是公司内部的项目,不方便放到外网上,所以我们要搭建自己的内网pypi源服务器,也可以用pip install的方式安装公共模块。
python官方关于pypi私有源实现的说明:http://wiki.python.org/moin/PyPiImplementations
首先选用快速上手的pypiserver进行尝试
1.首先进行安装

pip install pypiserver
mkdir ~/packages

2.复制一些包到packages目录,然后启动pypiserver 服务
首先,我在工作目录下新建一个文件夹mayTest里面有一个test.py.我在mayTest同级目录增加一个setup.py,内容如下

from setuptools import setup

setup(
    name='maytest',
    version='0.0.1',
    packages=['maytest']
)

在setup.py所在的目录执行以下代码来生成python代码分发包,执行完会出现一个dist目录,找到分发包maytest-0.0.1.tar.gz,将分发包上传到~/packages目录下。
3.启动pypi-server,端口可以随意指定

 pypi-server -p 8080 ~/packages & 

http://localhost:8080/simple/网页上的效果

搭建pypi私有源(项目公共模块)服务器_第1张图片
image.png

4.从客户端电脑(测试时只是开了一个新的终端...)

pip install  --extra-index-url http://localhost:8080/simple/ ...
pip install --extra-index-url http://localhost:8080
pip search --index http://localhost:8080 ...
搭建pypi私有源(项目公共模块)服务器_第2张图片
image.png

这样就安装成功了。
5.远程上传项目包
默认情况下,pypiserver的上传操作是密码保护的,需要安装一些包,pypiserver 需要passlib包来读取htpasswd文件。如下命令

pip install passlib

第一次生成密码的命令

htpasswd -c /root/.pypipasswd may

may 为用户名,之后会提示输入密码和再次输入密码
已经有用户名后再次加入用户名密码, 去掉-c命令即可。
接下来需要用Distutils来指定上传操作所需要的用户名和密码。创建活修改~/.pypirc文件,创建命令touch .pypirc.文件内容如下


搭建pypi私有源(项目公共模块)服务器_第3张图片
image.png

然后kill掉之前pypi-server,通过-P参数指定所要使用的密码文件来启动pypi-server


搭建pypi私有源(项目公共模块)服务器_第4张图片
image.png

接下来向名为localhost的pypi源上传python包时,用了may密码为linlin来验证操作权限
搭建pypi私有源(项目公共模块)服务器_第5张图片
image.png

最后做验证,确认maytest-0.0.2.tar.gz上传到pypi源上
搭建pypi私有源(项目公共模块)服务器_第6张图片
image.png

你可能感兴趣的:(搭建pypi私有源(项目公共模块)服务器)