【问题标题】:Installing tensorflow with virtualenv pip in Anaconda在 Anaconda 中使用 virtualenv pip 安装 tensorflow
【发布时间】:2021-01-19 09:37:55
【问题描述】:

我正在尝试在 Windows 10 的 Anaconda 中的 virtualenv 中使用 pip 安装 tensorflow。激活我的 virtualenv 后,当我运行 pip install tensorflow 时,出现错误:

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

This might be because tensorflow doesn't support Python3.8 我正在使用。帖子的更新说它现在应该可以工作,但它不适合我。我尝试了答案建议的方法,但运气不佳。

所以,我尝试了以下降级到 Python3.7:

但是当我激活 virtualenv 时,任何这些尝试都令人难以置信地看到 Python 切换回 3.8 版。即使我破坏环境并在旧的 Anaconda 中重新创建它。

我还使用 Python3.7 在 Anaconda 中尝试了py -3.7 -m pip install tensorflow(使用更新的 Anaconda 时找不到正确的 Python 版本)。它导致错误:

无法卸载“wrapt”。这是一个 distutils 安装的项目,因此 我们无法准确确定哪些文件属于它 只会导致部分卸载。

我修复了它运行 conda update wrapt 并再次启动了 tensorflow 安装命令。在多次安装和删除包后,它显示以下错误:

错误:2020 年 10 月之后,您在安装或安装时可能会遇到错误 更新包。这是因为 pip 会改变它的方式 解决依赖冲突。

我们建议您使用 --use-feature=2020-resolver 来测试您的软件包 在它成为默认值之前使用新的解析器。

pytest-doctestplus 0.2.0 需要 pytest>=2.8.0,但你会有 pytest 0.0.0 不兼容。 pytest-astropy 0.5.0 需要 pytest>=3.1.0,但你会得到不兼容的 pytest 0.0.0。

实际上,我可以看到安装没有工作:

  • pip freeze > requirements.txt 创建一个空的 requirements.txt

  • 在 Python 控制台中,当我尝试 import keras 时,它会解析为:

     Traceback (most recent call last):
       File "C:\Users\my_private_path\venv\lib\site-packages\keras\__init__.py", line 3, in <module>
         from tensorflow.keras.layers.experimental.preprocessing import RandomRotation
     ModuleNotFoundError: No module named 'tensorflow'
    
     During handling of the above exception, another exception occurred:
    
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
       File "C:\Users\my_private_path\venv\lib\site-packages\keras\__init__.py", line 5, in <module>
         raise ImportError(
     ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`
    

似乎无论我尝试多少条路径,tensorflow 都不喜欢 Anaconda 中的 virtualenv。有人会有可行的路径吗?

【问题讨论】:

    标签: python tensorflow anaconda virtualenv


    【解决方案1】:

    我一直使用带有 tensorflow 的虚拟环境,它运行良好。首先使用 Anaconda 创建一个新环境。从 Anaconda 主页单击环境。 当环境页面出现时,点击创建。将弹出一个新窗口。给环境起一个名字(例如叫它 tf),选中 python 复选框。从下拉列表中选择 python 3.7。安装了 python 3.7 创建了一个名为 tf 的新环境。 现在转到 conda 的 Anaconda 提示符。输入 conda activate tf.现在使用 conda 安装 tensorflow(不要使用 pip)。 Conda 自动安装 cudnn 7.6.5 和 CUDA Toolkit 10.1.243 和 tensorflow 2.1.0。如果您想要 tensorflow 2.2,请按照说明首先安装 2.1.0。然后使用 pip 安装 2.2 和 pip install tensorflow ==2.2.0。 2.2 与随 2.1 一起安装的工具包和 cudnn 版本兼容。 Conda 只能安装 tensorflow 到 2.1.0 版本。使用 pip 或 conda 安装您需要的任何其他软件包。

    【讨论】:

    • 成功了。对于未来的访客,这是我遵循的步骤:conda create --name py371 python=3.7.1 --channel conda-forgeconda activate py371conda install tensorflowvirtualenv venvvenv\Scripts\activatepip install tensorflow==2.2.0
    • 很高兴它解决了您的问题。他们应该修改 pip 安装,使其像 conda 安装一样工作。希望 Anaconda 的人们尽快将其升级为更高版本
    • 这会很棒,因为我发现了这种技术的缺点:pip freezeing 创建绝对路径,而pip installing 不起作用。每次运行pip install tensorflow==2.2.0 是必要的。