亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

以最低要求導出 Conda 環境

以最低要求導出 Conda 環境

森欄 2023-10-26 10:38:21
將 Anaconda 環境導出到 YAML 文件的典型命令是:conda env export --name my_env > myenv.yml然而,一個巨大的問題是該文件的可讀性,因為它包含所有庫及其所有依賴項的硬規范。Anaconda 有沒有辦法導出最佳最小命令子集的列表,該列表將包含這些依賴項以使 YAML 更具可讀性?例如,如果您在 conda 環境中安裝的所有內容都是pip和scipy,那么 Anaconda 是否有辦法意識到該文件應該只讀取:name: my_env channels:   - defaults dependencies:   - scipy=1.3.1   - pip=19.2.3這樣,即使沒有改進(如果修復了上游錯誤),anaconda 環境仍將具有完全相同的規范,并且任何查看 yml 文件的人都會理解運行代碼“需要”什么,從某種意義上說如果他們確實想要/無法使用 conda 環境,他們會知道需要安裝哪些軟件包?
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

Conda CLI 中的選項

這就是--from-history旗幟的用途,但不完全是這樣。它不會包含每個包的確切構建信息,而是僅包含所謂的顯式規范,即用戶通過 CLI 顯式請求的規范(例如,conda install scipy=1.3.1)。試試:

conda?env?export?--from-history?--name?my_env?>?myenv.yml

僅當用戶最初在安裝過程中包含版本時,這才會包含版本。因此,創建新環境很可能不會使用完全相同的版本和構建。另一方面,如果用戶最初包含版本和構建之外的附加約束,它們也將被包含(例如,通道規范conda install conda-forge::numpy將導致conda-forge::numpy)。

另一個值得注意的選項是 flag?--no-builds,它將導出 YAML 中的每個包,但忽略構建說明符。這些標志以互斥的方式工作。


污染

如果這還不夠,那么有一個名為conda-minify 的外部實用程序,它提供了一些功能來導出基于依賴關系樹而不是通過用戶的顯式規范最小化的環境。


查看完整回答
反對 回復 2023-10-26
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

看看pipreqs。它僅根據您在項目中明確執行的導入創建一個requirements.txt 文件(您甚至可以選擇--no-pin忽略版本號)。您稍后可以使用此文件通過conda install --file requirements.txt.

但是,如果您的目標是evironments.yml文件,則必須手動創建它。但這只是從 clean 中復制并粘貼requirements.txt。您只需將 conda 與“僅 pip”安裝分開即可。


查看完整回答
反對 回復 2023-10-26
  • 2 回答
  • 0 關注
  • 613 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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