簡體   English   中英

在conda環境中將pip用作低優先級“通道”

[英]using pip as a low priority 'channel' in conda environment

有沒有一種方法可以將pip用作conda環境中某些軟件包的“后備”選項,例如您可以擁有多個優先的conda通道?

對於普通的conda頻道,我的environment.yml如下:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - some-package>=1.2.3

如果可能的話,將通過默認通道安裝some-package ,否則,將使用conda-forge進行安裝。 如果兩個通道都沒有合適的軟件包版本,它將失敗。

帶有pip的environment.yml:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - pip
  - pip:
    - some-package>=1.2.3

some-package 總是來自點子。

但是我想要的是這樣的:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - some-package>=1.2.3
  - pip
  - pip:
    - some-package>=1.2.3

軟件包將首先來自默認值,否則來自conda-forge,或者來自pip。
但是,這會在嘗試pip之前給出ResolvePackageNotFound錯誤。 有什么辦法可以做到這一點?

我讀過某處內容,應該擴展conda以允許使用pip安裝的軟件包滿足令人滿意的依賴關系。 但是我無法通過快速搜索找到參考,而且我也不認為這是可用於生產的功能。 我記得不是conda安裝pip軟件包,而是conda接受pip已安裝的已經存在的軟件包。

Anaconda包根據其他Anaconda包定義了它們的依賴關系。 因此, conda解決了Anaconda軟件包在其自身的軟件包和元數據世界中的依賴性。 有些包甚至在Anaconda頻道和PyPI中甚至沒有相同的名稱。

換句話說:不,我認為您想要的是不可能的。 你必須打電話pip ,當你想通過安裝一些pip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM