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