pip install 无法安装依赖项

Val*_*Val 6 python pip setup.py python-packaging

TL;DR即使我已经使用install_requiresin指定了依赖项setup.py,但安装还是pip失败,因为找不到某些依赖项。


我开发了一个软件包,打算通过PyPi. 我创建了一个内置的分发轮并将其上传到,testPyPI以查看上传是否一切正常以及是否可以从用户角度安装该包。

但是,当我尝试pip在普通 python 2.7 环境中安装该包时,安装过程在安装依赖项时失败。

我的包依赖于这些包(我setup.py相应地将其添加到文件中):

...

install_requires=['numpy','gdal','h5py','beautifulsoup4','requests','tables','progress'],

...
Run Code Online (Sandbox Code Playgroud)

因此,当我运行 pip install 时,一切看起来都正常,直到收到此错误:

找不到满足进度要求的版本(来自#NAME#)(来自版本:)找不到进度的匹配发行版(来自#NAME#)

当我删除进度依赖项时(没有它我也可以生活),同样的事情也会发生pytables

找不到满足要求的版本表(来自#NAME#)(来自版本:)找不到表的匹配分布(来自#NAME#)

如果我事先手动运行pip install tablespip install progress一切都会按预期进行。

那么,我如何确保如果有人下载我的软件包,所有缺少的依赖项都会随之安装?

相关奖金问题

MANIFEST.in如果模块不可用,我可以在包中包含一个wheel文件(也许通过)并将其安装为依赖项吗?如果是这样,怎么办?

Val*_*Val 6

我想我自己已经找到了问题的答案。

从 中安装软件包时testPyPI,也会从此处安装依赖项。看起来,虽然有很多可用的软件包,pytablesprogress显然都丢失了。这导致安装失败。

当然,手动安装pip install从“正常”获取包PyPi,这当然是有效的。这显然增加了我的困惑。

pip install以下是从以下位置安装软件包时的输出testPyPi

  Downloading https://test-files.pythonhosted.org/packages/4f/96/b3329750a04fcfc316f15f658daf6d81acc3ac61e3db390abe8954574c18/nump
y-1.9.3.tar.gz (4.0MB)
Run Code Online (Sandbox Code Playgroud)

直接安装轮子时,看起来略有不同:

  Downloading https://files.pythonhosted.org/packages/2e/91/504e434d3b95d943caab926f33dee5691768fbb622bc290a0fa6df77e1d8/numpy-1.1
4.2-cp27-none-win32.whl (9.8MB)
Run Code Online (Sandbox Code Playgroud)

此外,运行

pip install --index-url https://test.pypi.org/simple/ tables
Run Code Online (Sandbox Code Playgroud)

产生与我的问题中描述的相同的错误。