1. 程式人生 > >使用 Nexus 搭建 PyPi 私服及上傳

使用 Nexus 搭建 PyPi 私服及上傳

最近一直在找pytho的包管理器pypi私服,通過google,找到比較流行的2種伺服器: Nexus Repository Manager OSS 3.x 與 devpi

Nexus Repository Manager OSS 3.x

安裝

https://www.sonatype.com/nexus-repository-oss 下載,解壓,執行即可

執行啟動命令

 
  1. cd /home/soft/nexus-3.10.0-04-unix/nexus-3.10.0-04/bin

  2. ./nexus start

然後訪問 

http://localhost:8081/#browse/welcome

PyPi 支援

預設登入使用者名稱/密碼: admin/admin123 官方文件地址: https://books.sonatype.com/nexus-book/reference3/pypi.html

配置pypi的倉庫

簡單講:

  1. 建立官方代理倉庫 mypypi

  2. 填寫遠端索引地址時用 https://pypi.python.org/ , 不要用 https://pypi.python.org/pypi .

  3. 建立 hosted 倉庫,用於內部使用 mypypi-hosted

  4. 建立 group 倉庫把官方代理和 hosted 倉庫包含進來 mypypi-group

總共三個倉庫:

image

代理倉庫的配置:

image

使用

到 http://localhost:8081/#admin/repository/repositories 找到自己的倉庫,點進去copy倉庫的url

在客戶端使pip安裝

注意:要在倉庫地址後面加/simple

pip install flask -i http://localhost:8081/repository/mypypi/simple

訪問 http://localhost:8081/#browse/search/pypi

 就能查到從官方倉庫下載下的模組

上傳模組

上傳配置

在使用者根目錄下新增.pypirc檔案,新增如下配置:

[distutils]
index-servers =
    pypi
    nexus
 
[pypi]
repository:https://pypi.python.org/pypi
username:your_username
password:your_password

 
[nexus]
repository=http://192.168.12.196:8081/repository/mypypi-hosted/
username=your_username
password=your_password

 

安裝python的twine包

pip install twine

先打包本地專案 主要是兩步,打包、釋出

參照官方文件:

我的setup.py配置

 
# coding=utf-8
from setuptools import setup
 
setup(
    name='BaseSpiders',  # 應用名
    version='1.0',  # 版本號
    author="codePande",
    author_email="[email protected]",
    description="封裝的基礎爬蟲",
    long_description=open("README.md").read(),
    license="MIT",
    url="",
    packages=[
        'baseCrawler',
        'exception',
        'hotupdate',
        'mylogs',
        'queues',
        'utils',
    ],
    install_requires=[
        "pika>=0.11.0",
        "requests>=2.13.0",
        "upyun==2.5.0",
        "pycrypto==2.6.1",
    ],
    classifiers=[
        "Topic :: Utilities",
        "Topic :: Internet",
        "Topic :: Software Development :: Libraries :: Python Modules",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.6",
        "Programming Language :: Python :: 2.7",
    ],
)
 

打包命令

python setup.py sdist bdist_wheel

上傳命令

twine upload -r nexus dist/*  # -r 可以選擇倉庫地址

在其他python環境使用上次的模組

pip install basespiders -i http://localhost:8081/repository/mypypi-group/simple

注意:下載地址要使用group倉庫,後面也要加/simple