Pip 不会安装在 setup.py 和 install_requires 中声明的依赖项

Pip does not install dependencies declared in setup.py with install_requires

在一个 Python 项目中,我在我的 setup.py 中使用 install_requires 如下。

install_requires=['numpy', 'scipy', 'matplotlib']

然后我按如下方式创建源代码、二进制文件和轮子。

python setup.py sdist bdist bdist_wheel

发布时,我使用twine

twine upload --repository dist/testpypi mypackage-0.1.1-py2-none-any.whl

在 Python 2.7 conda 环境中,然后我尝试测试安装。

pip install -i https://test.pypi.org/simple/ mypackage==0.1.1

但是,我收到以下错误消息:

ERROR: Could not find a version that satisfies the requirement matplotlib (from mypackage) (from versions: none)
ERROR: No matching distribution found for matplotlib (from mypackage)

当我执行 pip listconda list 时,确实没有列出 matplotlib 软件包。

我做错了什么?我认为(这一点是我的理解崩溃的地方)install_requires 会列出先决条件,而 pip install 会接受它并自动安装要求?但是,如果尚未安装声明的依赖项,install_requires 似乎可以防止安装包。

在某些互联网搜索中,他们似乎建议我通过 MANIFEST.in(例如 include requirements.txt)包含 requirements.txt,然后 pip install 将自动安装依赖项.但是,在尝试这种方法之后,我仍然收到相同的错误消息。我尝试使用 requirements.txt 如下。

matplotlib

还有如下。

matplotlib>=2.2.3

我如何 configure/setup setup.py 和我的发行版使得 pip installconda install 将通过 install_requires 自动安装声明的依赖项?

问题是 pip 在与所选包相同的存储库中查找包。因此,如果您提供使用 https://test.pypi.org/simple/,那么它会在此处而不是 https://pypi.org/simple/ 上查找包。

你认为你需要使用 --extra-index-url 参数

--extra-index-url <url>     Extra URLs of package indexes to use in addition to --index-url. Should follow the same rules as --index-url.

所以尝试:

pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ mypackage==0.1.1