虚拟环境调用Python的全局安装,而不是venv specifc版本



我遇到了一个问题,由于某种原因,我正在创建的虚拟环境正在访问我的系统范围内安装的Python和pip,而它们本不应该访问。

以下是我相当简单的工作流程,只是为了确保我不会错过任何明显的东西(Windows 10,Python 3.8.2(:

python -m venv venv
venvScriptsactivate.bat

正如你所料,我的道路现在已经由(venv(准备好了。然而,

pip list

列出了我拥有的所有系统范围的pip包,而不仅仅是应该在该venv中的那些。

pyvenv.cfg表示

include-system-site-packages = false

当我使用打开解释器时

python

在虚拟环境中,

sys.executable    

返回我的C驱动器和上的路径

print(pip.__file__)

做同样的事。我怀疑他们应该指向虚拟环境中的解释器和pip,但不知道如何实现这一点。

编辑:4/27/20,仍在处理此问题,我尝试过:

  • 从Python.org和MS Store 卸载和重新安装Python

  • 在新位置安装python

  • 清除我的用户和系统环境变量,然后添加仅适用于Python 3.8。

我在这里真的很不知所措,如果有任何帮助,我将不胜感激。

对于后来看到这一点的人来说,我最终意识到问题只发生在特定的文件夹中。在我的电脑上的其他地方创建虚拟环境似乎很好。为什么会出现这种情况?我不知道。我很好奇,但不足以在这个问题上再花一秒钟。好了。

这也发生在我身上。我的问题是,我在包含全局可执行文件(我指的是C:\Program Files\Python39(的目录下创建了虚拟环境。一旦我删除了这个虚拟环境并在其他地方创建了一个新的环境(例如C:\Python(,运行Python命令就会获取虚拟环境中的可执行文件,而不是全局环境。

我也遇到了同样的问题。可能是虚拟环境的路径中有一个带有重音的字符。这基本上意味着您必须更改\Scripts\activate.bat文件。为了查看情况是否如此,请使用以下程序:

  1. 通过运行\Scrips\Activate.bat文件激活虚拟环境
  2. 运行以下命令:
echo %PATH%

应该出现一堆路径,pathtoyourvirtualenvironmentScripts是它们中的第一个(这是强制性的(。检查此路径是否与预期路径完全相同(这意味着它不应该有"奇怪"字符,而应该有重音字符(。如果有任何差异,我建议您根据https://stackoverflow.com/a/22348546/11923771,重新打开命令提示符,然后再次按照步骤1和2查看问题是否已解决。

最新更新