使用Anacoda Python发行版时,安装不能通过Anaconda直接获得的PyPi包的最佳方法是什么?现在我正在使用:
conda pipbuild [pypi_name]
conda install --use-local [package_spec]
但我不清楚这是否是最好的方式,如果conda update --all
在更新可用时更新这些包。我还不清楚当PyPi已经存在时,binstar的意义何在。
答案 0 :(得分:25)
如果要为PyPI包构建conda包,建议的方法是使用conda skeleton pypi package
并在其创建的配方上使用conda build package
。每次更新包时,您都需要更新配方。
您也可以使用pip
安装这些软件包。这里的缺点是这些包装不会由conda管理。
答案 1 :(得分:24)
我不同意接受的回复,并注意pip install [some-pypi-package]
通常是在Conda环境中安装PyPi包的最佳方式。
虽然这些软件包不会由Conda软件包管理器管理,但它们仍将由Anaconda环境管理。它将为活动的Python安装下载正确版本的软件包,并使用pip
软件包管理器正确更新。
使用Anaconda时,您应尽可能在conda
之前转向pip
,但在使用pip
时,您不会失去使用Anaconda的任何可复制性优势
答案 2 :(得分:9)
自version 4.6.0起,Conda改进了与pip的互操作性:
Conda和pip历来难以相处。点子 没有尊重Conda的环境限制,而Conda一直 太高兴了,以至于无法使用点子安装的软件。一团糟。康达 4.6.0添加了预览支持,以实现更好的互操作性。凭借这种互操作性,Conda可以使用pip安装的软件包来满足 依赖项,甚至可以干净地删除pip安装的软件,并且 适当时将其替换为Conda软件包。还有房间 在点子和Conda成为矮胖BFF之前需要改进,但是我们希望 这是一个好的开始。默认情况下,此功能目前处于禁用状态 因为它会严重影响Conda的性能。如果你想 要尝试,您可以设置以下condarc设置:
conda config --set pip_interop_enabled True
因此,在编写本文时,将PyPI软件包放入conda的方法似乎是:
pip install <package>
如果您想让conda替换它自己的PyPI软件包(如果可能),只需运行:
conda update --all
鉴于已进行上述设置。 Conda将自己的渠道标记为优先于pip,因此包裹将被替换。