pip install 安装依赖失败
pip install fails to install dependencies
TL;DR 即使我在 setup.py
中指定了 install_requires
的依赖项,通过 pip
安装失败,因为一些依赖项找不到。
我开发了一个包,打算通过 PyPi
分发。我已经创建了一个内置的分发轮并将其上传到 testPyPI
以查看上传是否一切正常,以及是否可以从用户角度安装软件包。
但是,当我尝试 pip
在 vanilla python 2.7 环境中安装软件包时,安装过程在安装依赖项时失败。
我的包依赖于这些包(我相应地添加到 setup.py
文件):
...
install_requires=['numpy','gdal','h5py','beautifulsoup4','requests','tables','progress'],
...
所以当我 运行 pip install 时,一切看起来都很正常,直到我收到这个错误:
Could not find a version that satisfies the requirement progress (from #NAME#) (from versions: )
No matching distribution found for progress (from #NAME#)
当我删除进度依赖项时(我可以没有它),同样的事情发生在 pytables
:
Could not find a version that satisfies the requirement tables (from #NAME#) (from versions: )
No matching distribution found for tables (from #NAME#)
如果我事先手动 运行 pip install tables
和 pip install progress
,一切都会按预期进行。
那么我如何确保如果有人下载了我的软件包,所有缺少的依赖项都已安装?
相关加分题:
如果模块不可用,我可以在我的包中包含一个 wheel 文件(可能通过 MANIFEST.in
)并将其作为依赖项安装吗?如果是,怎么做?
我想我自己找到了问题的答案。
从 testPyPI
安装软件包时,也会从那里安装依赖项。看起来,虽然有许多可用的软件包,但 pytables
和 progress
显然丢失了。这导致安装失败。
当然,使用 pip install
手动安装会从 "normal" PyPi
获取软件包,这当然有效。这显然增加了我的困惑。
下面是从 testPyPi
安装软件包时 pip install
的输出:
Downloading https://test-files.pythonhosted.org/packages/4f/96/b3329750a04fcfc316f15f658daf6d81acc3ac61e3db390abe8954574c18/nump
y-1.9.3.tar.gz (4.0MB)
直接安装轮子时,外观略有不同:
Downloading https://files.pythonhosted.org/packages/2e/91/504e434d3b95d943caab926f33dee5691768fbb622bc290a0fa6df77e1d8/numpy-1.1
4.2-cp27-none-win32.whl (9.8MB)
此外,运行
pip install --index-url https://test.pypi.org/simple/ tables
产生与我的问题中描述的相同的错误。
TL;DR 即使我在 setup.py
中指定了 install_requires
的依赖项,通过 pip
安装失败,因为一些依赖项找不到。
我开发了一个包,打算通过 PyPi
分发。我已经创建了一个内置的分发轮并将其上传到 testPyPI
以查看上传是否一切正常,以及是否可以从用户角度安装软件包。
但是,当我尝试 pip
在 vanilla python 2.7 环境中安装软件包时,安装过程在安装依赖项时失败。
我的包依赖于这些包(我相应地添加到 setup.py
文件):
...
install_requires=['numpy','gdal','h5py','beautifulsoup4','requests','tables','progress'],
...
所以当我 运行 pip install 时,一切看起来都很正常,直到我收到这个错误:
Could not find a version that satisfies the requirement progress (from #NAME#) (from versions: ) No matching distribution found for progress (from #NAME#)
当我删除进度依赖项时(我可以没有它),同样的事情发生在 pytables
:
Could not find a version that satisfies the requirement tables (from #NAME#) (from versions: ) No matching distribution found for tables (from #NAME#)
如果我事先手动 运行 pip install tables
和 pip install progress
,一切都会按预期进行。
那么我如何确保如果有人下载了我的软件包,所有缺少的依赖项都已安装?
相关加分题:
如果模块不可用,我可以在我的包中包含一个 wheel 文件(可能通过 MANIFEST.in
)并将其作为依赖项安装吗?如果是,怎么做?
我想我自己找到了问题的答案。
从 testPyPI
安装软件包时,也会从那里安装依赖项。看起来,虽然有许多可用的软件包,但 pytables
和 progress
显然丢失了。这导致安装失败。
当然,使用 pip install
手动安装会从 "normal" PyPi
获取软件包,这当然有效。这显然增加了我的困惑。
下面是从 testPyPi
安装软件包时 pip install
的输出:
Downloading https://test-files.pythonhosted.org/packages/4f/96/b3329750a04fcfc316f15f658daf6d81acc3ac61e3db390abe8954574c18/nump
y-1.9.3.tar.gz (4.0MB)
直接安装轮子时,外观略有不同:
Downloading https://files.pythonhosted.org/packages/2e/91/504e434d3b95d943caab926f33dee5691768fbb622bc290a0fa6df77e1d8/numpy-1.1
4.2-cp27-none-win32.whl (9.8MB)
此外,运行
pip install --index-url https://test.pypi.org/simple/ tables
产生与我的问题中描述的相同的错误。