【问题标题】:Visual Studio Code is rejecting the Tensorflow installation in a Virtual EnvironmentVisual Studio Code 拒绝在虚拟环境中安装 Tensorflow
【发布时间】:2020-09-04 21:42:05
【问题描述】:

我创建了一个名为env 的虚拟环境,使用

python -m venv env

.\env\Scripts\activate.bat

pip install tensorflow

我已验证 tensorflow 位于 env\Lib\site-packages 文件夹中

接下来我加载了VS Code并创建了一个工作区,添加了一个python文件,它提示我安装pylint, 我输入python: select interpreter 并浏览到C:\Users\admin\env\Scripts 文件夹

这是脚本开头的命令行

(env) PS C:\Users\admin\env\project>  cd 'c:\Users\admin\env\project'; & 'C:\Users\admin\env\Scripts\python.exe' 'c:\Users\admin\.vscode\extensions\ms-python.python-2020.8.106424\pythonFiles\lib\python\debugpy\launcher' '54436' '--' 'c:\Users\admin\env\project\face_gan.py'

这是我调试python文件时遇到的错误:

ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`
PS C:\Users\admin\env\project> & C:/Users/admin/env/Scripts/Activate.ps1

当我在 VS Code 终端输入pip install tensorflow 时,它显示它已经安装了

(env) PS C:\Users\admin\env\project> pip install tensorflow
Requirement already satisfied: tensorflow in c:\users\admin\env\lib\site-packages (2.3.0)

我不明白,它不是在虚拟环境中运行的吗? 为什么它在调试会话结束时执行C:/Users/admin/env/Scripts/Activate.ps1,而不是在开始时执行

最后,从虚拟环境文件夹C:\Users\admin\env\Scripts 运行python 是否与使用activate.bat 文件或源命令相同?它会自动推迟使用C:\Users\admin\env\Lib 文件夹,还是仍在尝试使用默认的python 安装来查找Tensorflow?

为了让它在 VS Code 中正确使用虚拟环境,我错过了哪一步?

【问题讨论】:

  • 作为 Python 解释器的 VS Code 状态栏左下角是什么意思?它应该显示它是否正在使用 venv。
  • 你能从命令行正确运行文件吗?

标签: python visual-studio-code virtualenv


【解决方案1】:

第一个问题:调试命令后执行C:/Users/admin/env/Scripts/Activate.ps1没有区别。只是因为它是终端的第一个命令。您可以再次运行它来试一试。

第二个问题:是的,是一样的。在您的情况下,它将向 PYTHONPATH 变量添加 'C:\Users\admin\env' 和 'C:\Users\admin\env\lib\site-packages' 路径。

您可以通过这些代码获取PYTHONPATH(模块文件的默认搜索路径)变量值:

import sys
print(sys.path)

如果你直接导入'tensorflow'。你会发现你可以正确导入它。是版本问题。您应该降级软件包的版本,您可以参考this comment获取一些有用的信息。

【讨论】:

    猜你喜欢
    • 2019-01-08
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多