【问题标题】:Pip does not install dependencies declared in setup.py with install_requires [duplicate]Pip 不使用 install_requires 安装 setup.py 中声明的依赖项 [重复]
【发布时间】:2019-12-10 18:21:55
【问题描述】:

在一个 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

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

错误:找不到满足 matplotlib 要求的版本(来自 mypackage)(来自版本:无) 错误:没有为 matplotlib 找到匹配的分布(来自 mypackage)

当我执行pip list 和conda list 时,确实没有列出matplotlib 包。

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

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

matplotlib

还有如下。

matplotlib>=2.2.3

我如何配置/设置setup.py 和我的分发,以便pip install 或conda install 将通过install_requires 自动安装声明的依赖项?

【问题讨论】:

  • 您介意让我们试试吗?通过给出包的名称?

标签: python matplotlib pip pypi


【解决方案1】:

问题在于 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

【讨论】:

    猜你喜欢
    • 2020-09-21
    • 2020-01-09
    • 1970-01-01
    • 2018-11-13
    • 2022-01-15
    • 2015-07-04
    • 1970-01-01
    • 2023-04-03
    • 2018-09-27
    相关资源
    最近更新 更多