Python setup.py:找不到 Requirement.parse('tensorflow') 的合适分布

Jam*_*ams 6 python anaconda conda tensorflow

我已在我的项目的部分tensorflow中将其列为要求。install_requiressetup.py

当我尝试将项目安装到新的 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')
Run Code Online (Sandbox Code Playgroud)

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

$ conda install tensorflow
Run Code Online (Sandbox Code Playgroud)

一旦我这样做了,安装就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'
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*ams 1

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

唯一剩下的问题是我在运行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.
Run Code Online (Sandbox Code Playgroud)

tensorflow-cpu因此,当 2.1.0 版本显示为已安装版本时,1.15.0rc2 版本实际上被安装的问题仍然是一个谜。以机智:

$ 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
Run Code Online (Sandbox Code Playgroud)