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 的外部實用程序,它提供了一些功能來導出基于依賴關系樹而不是通過用戶的顯式規范最小化的環境。

TA貢獻2039條經驗 獲得超8個贊
看看pipreqs。它僅根據您在項目中明確執行的導入創建一個requirements.txt 文件(您甚至可以選擇--no-pin
忽略版本號)。您稍后可以使用此文件通過conda install --file requirements.txt
.
但是,如果您的目標是evironments.yml
文件,則必須手動創建它。但這只是從 clean 中復制并粘貼requirements.txt
。您只需將 conda 與“僅 pip”安裝分開即可。
添加回答
舉報