Nexus配置Pypi私库
生活随笔
收集整理的這篇文章主要介紹了
Nexus配置Pypi私库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、使用docker安裝
sonatype將 nexus3做成了docker鏡像,安裝過程十分簡單
# 容器中的進程是以uid為200的用戶執行 mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data # 為了持久化存儲,需要掛載到宿主機的某個目錄 docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3二、配置倉庫
安裝好nexus后,訪問http://your-hostname.com:8081,點擊右上角登陸,默認賬號為admin,默認密碼存放在容器內,使用以下命令獲取:
docker exec nexus cat /nexus-data/admin.passwordNextus3的倉庫都有三種類型:
- hosted:適用于存儲公司內部的python包
- proxy:可以指定一個遠程的源,當nexus本地無緩存時,會去該源下載相應的包。在這里插入圖片描述其中,有兩個需要注意參數:
- Maximum component age:默認為1440min (1day),表示一個組件(比如flask)的包會被緩存多久。超過該緩存時間之后,下次client對此包發起請求,則會再去遠程的源拉一次(設置為**-1**表示永不失效)
- Maximum metadata age:默認為1440min(1day),表示包的metadata信息會緩存多久。假設我們的項目依賴A,官方剛剛更新了包A的版本,我們也將項目中A的版本改為最新版本,由于metadata最大失效時間為1天,我們install的時候有可能提示找不到最新的版本。該值設為0表示每次都去請求最新的metadata,-1表示只用本地緩存。
- group:組合多個hosted/proxy/group,提供統一訪問地址
分別創建上述的三個倉庫,命名為pypi-repo, pypi-central, pypi-public:
常用pypi源:
清華大學:https://pypi.tuna.tsinghua.edu.cn/
阿里云:http://mirrors.aliyun.com/pypi/
豆瓣(douban): http://pypi.douban.com/
官方源:https://pypi.org
三、安裝python包
# 如果沒用配置https,則需要加上--trusted-host pip install flask django -i http://your-hostname.com:8081/repository/pypi-public/simple/ \ --trusted-host your-hostname.com成功安裝后,nexus倉庫上就會有這些包的緩存
倉庫下的simple文件夾里面存放著各個包的metadata信息,這也是為什么我們在install指定-i參數的時候url是.../pypi-public/simple/
也可以全局配置pip的proxy
四、上傳python包
打包過程參考Packaging Python Projects
上傳我們自己的包需要指定hosted倉庫:
python3 -m twine upload --repository-url http://your-hostname.com:8081/repository/pypi-repo/ dist/*username: xxx password: xxx按這種方式每次上傳時需要填寫用戶名密碼,如果不想每次都輸入,在~/.pypirc文件下寫入:
[distutils] index-servers =nexus [nexus] repository: http://your-hostname.com:8081/repository/pypi-repo/ username: xxx password: xxx以后上傳只需執行:
python -m twine upload -r nexus dist/*Refs
Nexus for pipy
總結
以上是生活随笔為你收集整理的Nexus配置Pypi私库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享五款智能配音软件,声音堪比真人,制作
- 下一篇: java装饰模式实例解析