在 Anaconda 中,有在配置文件中添加“通道”的选项。
每个安装的软件包conda install ...
都会首先在这些频道中查找软件包(例如 频道intel
)。
有没有办法让 PIP 也从特定渠道安装?
答案1
pip
支持指定其他存储库来查找包;它们的行为类似于 中的频道conda<4
。例如:
$ pip install somepkg --extra-index-url http://myindex.org
可以指定多个附加索引pip.conf
:
[global]
extra-index-url=
http://myindex.org
http://other-index.org
http://third-index.org
当通过提供索引时extra-index-url
,pip
将始终搜索位于的默认索引https://pypi.org,然后是额外索引并安装第一个匹配的包。覆盖http://pypi.org也可以通过
$ pip install --index-url http://myindex.org
托管本地索引
如果需要,托管本地索引实际上非常容易。尽管有很多第三方 PyPI 服务器可用(举几个例子:devpi
、wheelhouse
或pypiserver
),但除了 Python 安装之外,您不需要任何东西就可以自己启动一个。创建一个目录,其中包含与包名称相同且包含安装文件的子目录:
repo
└── MyPackage
└── MyPackage.tar.gz
导航到目录并运行 stdlib 的服务器:
$ cd repo/
$ python -m SimpleHTTPServer 9000
现在您可以从本地存储库安装软件包:
$ pip install MyPackage --extra-index-url = http://127.0.0.1:9000/
答案2
如果我没记错的话,我认为它pip
没有像 Anaconda 那样的“渠道”。本质上,pip
它假设对于简单的在线安装(例如pip install package_name
),它将从吡啶甲酸。
尽管如此,无论如何,从其他来源(本地和远程)获取数据肯定是可能的——请参阅官方 Python 安装包指南举几个例子。支持的源可以包括版本控制系统 (VCS)、备用索引(即不是 PyPI)、本地 src 树和本地档案/轮子。
可以找到更多有关 Git、Mercurial、Subversion 和 Bazaar 的 VCS 支持文档这里。