从自定义索引 setup.py 安装
Posted
技术标签:
【中文标题】从自定义索引 setup.py 安装【英文标题】:Installing from custom index setup.py 【发布时间】:2019-03-15 01:44:40 【问题描述】:我是一个包的包维护者,该包依赖于我们自己的 pip 存储库中托管的包。
我希望在执行pip install mypackage
时也安装这些软件包。
setup(
name='mypackage',
version='1.1.2',
description='My awesome package',
dependency_links=[
'http://www.myrepo.se/packages/mydep1/',
'http://www.myrepo.se/packages/mydep2/'
]
install_requires=[
'mydep1==1.0.0',
'mydep2==5.6.7'
]
)
repo 中的文件夹结构如下:
packages/
mydep1/
mydep1-1.0.0.tar.gz
mydep2/
mydep2-5.5.1.tar.gz
mydep2-5.6.7.tar.gz
全部根据这个问题Using an extra python package index url with setup.py接受的答案
但是,这不起作用。我得到了错误:
Collecting mydep1 (from mypackage==1.1.2)
Could not find a version that satisfies the requirement mydep1 (from mypackage==1.1.2) (from versions: )
No matching distribution found for mydep1 (from mypackage==1.1.2)
当我在我的 requirements.txt 中添加了一个额外的索引 url 之后,我必须将这个 url 添加为受信任的主机。这有关系吗?我也在使用 python 3.5.3
编辑: 我从 pip 激活了详细输出,它甚至没有尝试从我的 repo 中找到包。
1 location(s) to search for versions of mydep1:
* https://pypi.python.org/simple/mydep1/
Getting page https://pypi.python.org/simple/mydep1/
...
【问题讨论】:
pip ignores dependency_links in setup.py的可能重复 是的。这是重复的,因为解决方案是相同的。它也不是重复的,因为我试图从自定义 pypi 存储库安装,而他试图从 GitHub 安装。另外,即使我搜索过,直到我发布我的问题后才找到它:) 【参考方案1】:似乎pip
没有处理依赖链接,除非你明确告诉它(不幸的是,这意味着 mypackage 的所有消费者都必须知道这样做)。
pip install --process-dependency-links mypackage
由于mypackage
也由同一存储库托管,这意味着消费者requirements.txt
必须看起来像
--trusted-host http://www.myrepo.se/
--extra-index-url http://www.myrepo.se/packages
--process-dependency-links
mypackage==1.1.2
【讨论】:
--process-dependency-links
选项在 pip
v 19.0.3 中不再支持。我确实有此处所述的问题,但如果没有此选项,我不确定如何继续?
@Gabriel,使用here 中描述的 PEP 508 语法让pip
19.0 与 URL 很好地配合使用:install_requires = ['package @ https://url/to/package.tar#egg=package']
。请记住,PyPI will retire this functionality somewhere the future.以上是关于从自定义索引 setup.py 安装的主要内容,如果未能解决你的问题,请参考以下文章