美文网首页
搭建pypi私有源(项目公共模块)服务器

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

作者: 小草_fdba | 来源:发表于2018-05-29 18:28 被阅读0次

    公司不同项目中用到了相同的模块,比如相同的取历史数据,以及一些相同的工具类。在不同项目中这些代码复制,黏贴,还会造成同一个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/网页上的效果

    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 ...
    
    image.png

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

    pip install passlib
    

    第一次生成密码的命令

    htpasswd -c /root/.pypipasswd may
    

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


    image.png

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


    image.png
    接下来向名为localhost的pypi源上传python包时,用了may密码为linlin来验证操作权限
    image.png
    最后做验证,确认maytest-0.0.2.tar.gz上传到pypi源上
    image.png

    相关文章

      网友评论

          本文标题:搭建pypi私有源(项目公共模块)服务器

          本文链接:https://www.haomeiwen.com/subject/frzojftx.html