【问题标题】:Virtual Environment calling global installation of Python instead of venv-specifc version虚拟环境调用 Python 的全局安装而不是 venv-specifc 版本
【发布时间】:2020-08-08 13:18:45
【问题描述】:

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

这是我相当简单的工作流程,只要确保我没有遗漏任何明显的东西(Windows 10、Python 3.8.2):

python -m venv venv
venv\Scripts\activate.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。

我真的很茫然,不胜感激。

【问题讨论】:

  • 这个链接可能对你有用:stackoverflow.com/questions/41573587/…
  • 谢谢 - 你有什么特别的想法吗?我了解 venv / 虚拟环境通常试图完成什么,我的问题是虚拟环境本身的预期功能没有实现,我没有看到在那个问题中解决(即激活虚拟environment 没有将我的 python/pip 指向这些程序的虚拟环境特定安装,但继续指向我的全局安装)但是我可能错过了一些东西。
  • 我在 virtualenv 上从来没有遇到过这样的问题...还有一个问题:你使用哪个 Python 分发包?
  • virtualenv 对我来说遇到了同样的问题。我认为这个问题更普遍地与我的计算机上设置的路径有关,而不是使用给定的包,因为在另一台计算机上按照相同的工作流程正常工作。我在 Windows 10 上使用 Python 3.8.2。
  • 再一次,你的 Python 的来源是什么?蟒蛇.org?微软视觉工作室?蟒蛇?微软商店?

标签: python windows virtualenv python-venv


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    对于稍后查看此内容的任何人,我最终意识到问题仅发生在特定文件夹中。在我的计算机上的其他地方制作虚拟环境似乎工作正常。为什么会这样?我不知道。我很好奇,但不足以在这个问题上再花一秒钟。就这样吧。

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2018-06-10
      • 2021-08-27
      • 2022-01-22
      • 2020-08-05
      • 1970-01-01
      相关资源
      最近更新 更多