日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nexus配置Pypi私库

發布時間:2023/12/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.password

Nextus3的倉庫都有三種類型:

  • 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

mkdir ~/.pip vim ~/.pip/pip.conf[global] index-url = http://your-hostname.com:8081/repository/pypi-public/simple/ trusted-host = your-hostname.com

四、上傳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私库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。