有没有办法在pip --extra-index-url pypi.example.org mypackage
上使用额外的python包索引(ala setup.py
),以便运行python setup.py install
可以找到pypi.example.org
上托管的包?
答案 0 :(得分:28)
如果您是软件包维护者,并且希望在PyPi以外的地方托管软件包的一个或多个依赖项,则可以在您的发行版{{1}中使用setuptools
setup.py
选项文件。这允许您提供可以找到包裹的明确位置。
例如:
from setuptools import setup
setup(
name='somepackage',
install_requires=[
'somedep'
],
dependency_links=[
'https://pypi.example.org/pypi/somedep/'
]
# ...
)
如果您拥有自己的索引服务器,则需要提供指向包含每个鸡蛋的实际下载链接的页面的链接,而不是列出所有包的页面(例如https://pypi.example.org/pypi/somedep/
,而不是{{1 }})
答案 1 :(得分:8)
setuptools 使用了 easy_install 。
它依赖于记录为here的 setup.cfg 或〜/ .pydistutils.cfg 。
packages 的额外路径可以使用find_links在这些文件中定义。您可以使用 index_url 覆盖注册表网址,但无法提供 extra-index-url 。以下示例受文档启发:
[easy_install]
find_links = http://mypackages.example.com/somedir/
http://turbogears.org/download/
http://peak.telecommunity.com/dist/
index-url = https://mypi.example.com
答案 2 :(得分:1)
使用Dockerfile时找到了解决方案:
RUN cd flask-mongoengine-0.9.5 && \
/bin/echo -e [easy_install]\\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple >> setup.cfg && \
python setup.py install
其中/bin/echo -e [easy_install]\\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple
将输出:
[easy_install]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
答案 3 :(得分:0)
据我所知,你不能这样做。 你需要告诉pip,或者通过传递你提到的参数,或者在用户环境中设置它。
检查我的〜/ .pip / pip.conf:
[global]
download_cache = ~/.cache/pip
index-url = http://user:pass@localpypiserver.com:80/simple
timeout = 300
在这种情况下,我的本地pypiserver也会代理pypi.python.org中的所有包,所以我不需要添加第二个条目。
答案 4 :(得分:0)
以下对我有用:
$ python setup.py install --index-url https://x.com/n/r/pypi-proxy/simple
https://x.com/n/r/pypi-proxy/simple
是本地PyPI存储库。
答案 5 :(得分:-3)
您可以在requirements.txt文件中包含--extra-index-urls
。请参阅:http://pip.readthedocs.org/en/0.8.3/requirement-format.html