从自定义索引安装 setup.py

Installing from custom index setup.py

我是一个包的包维护者,该包依赖于托管在我们自己的 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 不处理依赖链接,除非您明确告诉它(不幸的是,这意味着 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