0

我在 VS-Code 中设置了一个项目,其中包含一个 venv(通过“python -m venv venv”设置)。一切工作正常:Git 工作,我的 venv 也完成了它的工作,例如,当 venv 处于活动状态时通过终端打开 python 将在 venv 中打开正确的 python 解释器,从而找到正确的库。

我决定通过 git 命令打开一个新分支:“git checkout -b eel_replacement”,然后想通过“pip install django”安装 Django(当我的 venv 处于活动状态时)。安装成功,我想通过打开python解释器并尝试“import django”(我也尝试过“import Django”)来验证,但没有成功,导致错误:

Traceback(最近一次调用最后一次):文件“”,第 1 行,在 ModuleNotFoundError:没有名为“django”的模块

如果我输入 pip list,那么这是输出: pip list output

这里有两件事让我很困惑:它确实显示了所有包,而不仅仅是我在 venv 中安装的包。这通常表明我的 venv没有激活!尽管如此,您可以看到它仍然在我的命令提示符之前显示“(venv)”行,这通常表明venv激活。

此外,上面显示的“pip list”输出还列出了已成功安装的 Django。所以我假设 venv 正在运行,但 django 包意外安装在我的主机上,这导致我无法从我的 venv 中导入它。所以我尝试这种方式来查看 venv 是否处于活动状态。奇怪的是,这会返回一个 True(如此处所示),这意味着我的 venv 根本没有激活,这让我完全一无所知。

我有另一个项目,其中我使用 git 和 github 以及 venv 仍然可以正常工作。是该sys.prefix==sys.base_prefix其他项目中代码的输出,它按预期返回 False。在 master 和 eel_replacement 分支之间来回检查并没有解决问题。重新启动/重新打开项目也没有。

我不确定这是否是某种非常奇怪的错误,因为有关 venv 是否处于活动状态的提示不一致,或者只是我在监督一些明显的事情。我会很感激一些帮助。这也是我关于stackoverflow的第一个问题,所以对我温柔^^

4

0 回答 0