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

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

管理 conda 和 pip 之間依賴關系的最佳實踐

管理 conda 和 pip 之間依賴關系的最佳實踐

侃侃爾雅 2023-05-16 14:22:28
我正在開發一個 Python 庫,它依賴于多個包。我正在努力尋找最直接的方法來管理具有以下約束的所有這些依賴項:其中一些依賴項僅作為 conda 包提供(從技術上講,源代碼是可用的,但構建過程不是我想要的)其他依賴項只能通過 pip 獲得我需要在可編輯或開發者模式下安裝我自己的庫我經常需要使依賴項保持最新我當前的初始安裝設置:新建conda環境安裝 conda-only 依賴項conda install ...安裝我的圖書館pip install -e .此時,安裝了一些包,現在由 conda 管理,其他包由 pip 管理。當我想更新我的環境時,我需要:更新環境的 conda 部分conda update --all手動更新環境的pip部分我的問題是這是不穩定的:當我更新所有 conda 包時,它確保它管理的包的一致性。但是,我不能保證整個環境保持一致,我剛剛意識到我缺少一些更新,因為我忘記檢查環境的 pip 部分的更新。最好的方法是什么?我想過:使用 conda 的pip 互操作性功能:這似乎可行,但我得到了一些可疑的結果,可能是因為我使用了extras_require由于 pip 可以看到 conda 包,因此初始安裝是一致的,這意味著我可以在需要更新時簡單地重新安裝所有內容。這有效但并不十分優雅。
查看完整描述

1 回答

?
幕布斯7119047

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

官方文檔中關于管理還需要 PyPI 源或安裝的本地包的 Conda 環境的建議pip是在 YAML 文件中定義所有依賴項(Conda 和 Pip)。就像是:

環境文件

name:?my_env
channels:
?-?defaults
dependencies:
?-?python=3.8
?-?numpy
?-?pip
?-?pip:
???-?some_pypi_only_pkg
???-?-e?path/to/a/local/pkg

在這種環境中更新的工作流程是更新 YAML 文件(我建議將其置于版本控制之下),然后創建一個新環境或使用

conda?env?update?-f?env.yaml

就個人而言,我傾向于創建新的環境,而不是改變(更新)現有環境,并>=version在 YAML 中使用最小約束(即 )。創建新環境時,它應該自動拉取最新的一致包。另外,可以保留環境的先前實例,以防在開發生命周期中需要回歸。


查看完整回答
反對 回復 2023-05-16
  • 1 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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