可以将 conda 配置为使用私有 pypi 存储库吗?
Posted
技术标签:
【中文标题】可以将 conda 配置为使用私有 pypi 存储库吗?【英文标题】:Can conda be configured to use a private pypi repo? 【发布时间】:2021-03-30 16:01:30 【问题描述】:我有创建 conda 和 pip 包的用户 - 我无法控制这个
我使用 artifactory 来托管私有 conda 和 pip 存储库,例如私有 pip 存储库是这样工作的:https://www.jfrog.com/confluence/display/JFROG/PyPI+Repositories
有时有一个 conda 环境或包需要的私有 pip 包。如何配置 conda 以从我的私人仓库获取我的私人 pip 包?
我还没有找到这方面的文档。我希望这对用户尽可能透明-因此他们设置了一次配置,然后在他们的 conda 环境中,他们可以轻松地指定一个私有 pip 包,它就可以工作
【问题讨论】:
【参考方案1】:Conda 不会自动搜索 PyPI 或替代 pip
兼容索引,但在使用 pip install
时仍然可以使用 --index-url
或 --extra-index-url
标志。例如,
临时安装
# activate environment
conda activate foo
# ensure it has `pip` installed
conda list pip
# install with `pip`
pip install --extra-index-url http://localhost:8888 bar
基于 YAML 的环境
foo.yaml
name: foo
channels:
- defaults
dependencies:
- python
- pip
- pip:
- --extra-index-url http://localhost:8888
- bar
环境营造
conda env create -f foo.yaml
【讨论】:
但它会读取我的 .pypirc 来获取用户名和密码,对吗?否则它如何向私人仓库进行身份验证?在 conda install/create/update/etc 期间,我是否必须手动 pip install 或者 conda 会从 pypirc 获取我的凭据? @red888 as per docs,看起来您可以使用.netrc
文件、密钥环,或者只是将凭据放在 URL 中。
在配置私有 pypi 存储库的 jfrog 文档中没有出现的有趣。所以对于 conda 我需要使用 netrc 因为它忽略了 pypirc?
@red888 不确定。 TBH,我从未使用过.pypirc
; docs seem to indicate 仅用于上传到存储库,在这种情况下不是 Conda 忽略它,而是 pip
不使用它。
如何在 meta.yaml 中指定 --extra-index-url
?以上是关于可以将 conda 配置为使用私有 pypi 存储库吗?的主要内容,如果未能解决你的问题,请参考以下文章