【问题标题】:Python setup.py: Could not find suitable distribution for Requirement.parse('tensorflow')Python setup.py:找不到 Requirement.parse('tensorflow') 的合适分布
【发布时间】:2020-05-13 06:07:49
【问题描述】:

我在项目的setup.pyinstall_requires 部分将tensorflow 列为要求。

当我尝试将我的项目安装到新的 Anaconda 环境中时,我收到以下错误:

$ python setup.py install

...

Searching for tensorflow
Reading https://pypi.org/simple/tensorflow/
No local packages or working download links found for tensorflow
error: Could not find suitable distribution for Requirement.parse('tensorflow')

我可以通过 conda “手动”安装 tensorflow 来解决这个问题:

$ conda install tensorflow

一旦我这样做了,通过setup.py 的安装就会顺利进行。

我是否误以为我的环境有问题?如果不是,那么发生了什么,我该如何避免这个问题? (我担心我的包的用户将无法使用setup.py从源代码安装)

我认为与此相关或可能提供线索的另一个奇怪之处是我的 Anaconda 环境中列出的 TensorFlow 版本是 2.0,但如果我在运行 Python 时导入它,它似乎使用的是 1.15 版本。例如:

$ conda list tensorflow
# packages in environment at /home/james/miniconda3/envs/cvdata_test:
#
# Name                    Version                   Build  Channel
tensorflow                2.0.0           mkl_py37h66b46cc_0  
tensorflow-base           2.0.0           mkl_py37h9204916_0  
tensorflow-estimator      2.0.0              pyh2649769_0  

$ python 
Python 3.7.6 | packaged by conda-forge | (default, Jan  7 2020, 22:33:48) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.15.0-rc2'

这是在没有 GPU 的运行 Ubuntu 18.04 的戴尔笔记本电脑上,所以解释器中显示的版本可能类似于 tensorflow-cpu?如果我运行pip freeze 我会看到tensorflow==2.0.0tensorflow-cpu==1.15.0rc2,这有点令人困惑......

【问题讨论】:

  • 对于这个错误“错误:找不到适合 Requirement.parse('tensorflow') 的分发版”,请确保您拥有升级(最新)版本的 pip。
  • 我也有这个错误:警告:pip 正在被旧的脚本包装器调用。这将在 pip 的未来版本中失败。请参阅github.com/pypa/pip/issues/5599 以获取有关解决潜在问题的建议。为避免此问题,您可以使用“-m pip”调用 Python,而不是直接运行 pip。引用问题中包含的说明到处都是,看起来没有任何决定性,所以我很犹豫要不要陷入困境......
  • 看起来你可能有依赖冲突。尝试使用 Anaconda 虚拟环境 conda create ....,这将强制使用单个版本的 pippython
  • 是的,我一直在使用 conda 创建一个全新的虚拟环境。我使用$ python -m pip install -e .$ python -m pip install tensorflow 得到上述错误。我必须先做conda install tensorflow 然后一切都会或多或少按预期工作。也许它与 pip 在哪里查找包有关,类似于如何为 conda 设置通道?我的假设是它会去 PyPI for tensorflow 并且它应该在那里,所以也许我已经不知何故地在它寻找包的地方?有趣的是,张量流是唯一一个对我来说似乎很不稳定的......

标签: python tensorflow anaconda conda


【解决方案1】:

这似乎是由使用 Python 3.8 版引起的,该版本目前是不受支持的 Python 版本。一旦我使用 Python 3.7 版创建了一个新的 Anaconda 环境,这个问题就消失了。

剩下的唯一问题是我在为包含 tensorflow 的项目运行 pip install -e . 时看到的这个错误:

ERROR: tensorflow-cpu 1.15.0rc2 has requirement tensorboard<1.16.0,>=1.15.0, but you'll have tensorboard 2.1.0 which is incompatible.
ERROR: tensorflow-cpu 1.15.0rc2 has requirement tensorflow-estimator==1.15.1, but you'll have tensorflow-estimator 2.1.0 which is incompatible.

所以tensorflow-cpu 1.15.0rc2 版本在2.1.0 版本显示为已安装版本时实际安装的问题仍然是个谜。也就是说:

$ conda list tensorflow
# packages in environment at /home/james/miniconda3/envs/cvd:
#
# Name                    Version                   Build  Channel
tensorflow                2.1.0                    pypi_0    pypi
tensorflow-estimator      2.1.0                    pypi_0    pypi
$ python -c "import tensorflow as tf; print(tf.__version__)"
1.15.0-rc2

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 2018-11-14
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多