【问题标题】:Jupyter refuses to load virtual environment in VS Code interactive modeJupyter 拒绝在 VS Code 交互模式下加载虚拟环境
【发布时间】:2021-06-28 09:19:32
【问题描述】:

在 VS Code 中尝试以 python 交互模式加载包时得到ModuleNotFoundError 后,我现在怀疑当前虚拟环境在 Jupyter Kernel 中没有正确加载,尽管我在右上角的下拉菜单中选择了它(见截图)。

因此我运行了一个单元格

import os
os.environ['VIRTUAL_ENV']

得到了


import os...
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
c:\Users\user\OneDrive\Desktop\aig\decoding_methods.py in 
      2 import os
----> 3 os.environ['VIRTUAL_ENV']

C:\Python37\lib\os.py in __getitem__(self, key)
    679         except KeyError:
    680             # raise KeyError with the original key value
--> 681             raise KeyError(key) from None
    682         return self.decodevalue(value)
    683 

KeyError: 'VIRTUAL_ENV'

表示虚拟环境确实没有加载。在控制台中加载环境和模块没有问题。这是一个错误还是我做错了什么?

【问题讨论】:

  • 你应该使用try/except来捕获这个错误,或者你应该使用os.getenv('VIRTUAL_ENV'),如果系统中没有'VIRTUAL_ENV',你会得到None
  • 对我来说:venv 的正确路径与 'VIRTUAL_ENV' 无关 - 值 'VIRTUAL_ENV' 可以以不同的方式设置,或者可能需要为此 venv 使用 active
  • 这只是为了测试是否使用了venv,因为我不确定ModuleNotFoundError 是否是由于这个原因。当我从常规的 jupyter notebook 运行它时,没有出现错误,进一步表明问题出在 vs 代码中。

标签: python visual-studio-code jupyter python-venv virtual-environment


【解决方案1】:

当我使用全局python环境时,VS Code显示你描述的信息:

当我使用创建的虚拟环境时,它显示了正确的信息:

因此,请使用本文档中描述的虚拟环境,VS Code可以很好的识别:Virtual environment in VS Code

【讨论】:

  • 我使用的不是全局环境,而是虚拟环境,如我帖子中的第一个屏幕截图所示。问题是,jupyter 内核似乎没有加载虚拟环境,但不知何故默认为全局环境。然而,解释器在加载虚拟环境时似乎没有问题。
  • @Comfort Eagle - 你创建的虚拟环境怎么样?请尝试在 VS Code 中使用命令“python3 -m venv .venv”创建虚拟环境。
【解决方案2】:

解决方案是重新安装内核,但指定 --name 标志:

首先: pip install ipykernel 后跟

python -m ipykernel install --user --name=myenv

Source

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 2021-11-12
    • 2022-11-21
    • 2018-08-20
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多