第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試使 Python 項目要求無版本

嘗試使 Python 項目要求無版本

catspeake 2021-10-12 16:10:01
想象一個項目MyLibrary,它曾經有自己的requirements.txt文件,指定每個依賴項所需的所有版本......lib_a==0.1lib_b==0.11lib_c==0.1.1lib_d==0.1.2lib_e==0.1.8還有一個項目ChildProject恰好具有相同類型的設置,具有自己的requirements.txt文件和所有內容。ChildProject使用,MyLibrary因為它需要它具有的一些通用功能。這兩個的問題在于,它ChildProject有一個也在 中指定的庫MyLibrary,但版本不同,這會導致沖突并導致構建失敗。我為解決這個問題所做的工作是刪除依賴項MyLibrary并為每個庫指定最小和最大版本,setup_requires在setup()方法中的屬性中指定那些......setup(    setup_requires=['pbr', 'pytest-runner'],    install_requires=[        'lib_a>=0,<1',        'lib_b>=0,<2',        'lib_c>=0,<3',        'lib_d>=0,<4',        'lib_e>=0,<5'    ],    pbr=True,)這就是我迷路的地方......我應該刪除requirements.txt的MyLibrary,并使用全部留給版本兒童項目?如果是這樣,我怎么知道ChildProject指定了所有需要的依賴項?如果我錯過指定lib_ainChildProject怎么辦?是否setup_requires會自動安裝符合約束的最新版本或它是如何工作的?(我問這個是因為 AFAIK,install_requires只是指定了約束,但在項目中不包含任何庫)。
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

管理 deps 版本的一般建議:

  • dont't引腳版本(即要么install_requires沒有版本可言,或松散的限制,即<4)。這就是你已經擁有的

  • 應用程序可以做任何需要的事情。實際上,強烈建議將您的依賴項固定到某個確切的版本(螞蟻更好 - 提供哈希,以保護自己免受偽造的庫的影響)。原因 - 您不能保證 3rd-party 庫遵循semver。這意味著>2, <3在您的系統(tǒng)中requirements.txt可能會導致構建/部署中斷,因為發(fā)布的 3rd 方庫2.5似乎與2.4. 因此,您必須盡力避免通過在不同時間重新構建來破壞構建。換句話說,你的構建應該在 PyPI 狀態(tài)下是冪等的。

    通?!鷮姹竟潭ǖ侥硞€狀態(tài),測試您的應用程序并提交/保存/構建/無論您如何交付。一段時間后,您正在修改版本(即更新框架或解決安全補丁),更新 中的版本requirements.txt,使用新的 deps 狀態(tài)測試您的應用程序,如果沒有沖突/損壞的部分,則使用固定版本“凍結”該狀態(tài),和構建/部署/等。這種循環(huán)為您提供了偶爾更新您的需求以保持最新狀態(tài)的空間,同時您的代碼不會因為重新安裝依賴項而被破壞。

如果您希望通過版本更輕松地進行 dep 管理,我建議您查看 pipenv


查看完整回答
反對 回復 2021-10-12
  • 1 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號