使用 Nexus 搭建 PyPi 私服及上傳
最近一直在找pytho的包管理器pypi私服,通過google,找到比較流行的2種伺服器: Nexus Repository Manager OSS 3.x 與 devpi
Nexus Repository Manager OSS 3.x
安裝
執行啟動命令
-
cd /home/soft/nexus-3.10.0-04-unix/nexus-3.10.0-04/bin
-
./nexus start
然後訪問
PyPi 支援
預設登入使用者名稱/密碼: admin/admin123 官方文件地址: https://books.sonatype.com/nexus-book/reference3/pypi.html
配置pypi的倉庫
簡單講:
-
建立官方代理倉庫 mypypi
-
填寫遠端索引地址時用 https://pypi.python.org/ , 不要用 https://pypi.python.org/pypi .
-
建立 hosted 倉庫,用於內部使用 mypypi-hosted
-
建立 group 倉庫把官方代理和 hosted 倉庫包含進來 mypypi-group
總共三個倉庫:
代理倉庫的配置:
使用
到 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規範 https://packaging.python.org/tutorials/distributing-packages/#setup-py
- twine使方法 https://pypi.org/project/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