首页 > 解决方案 > python3 venv 看到来自 python2 的包

问题描述

我并排安装了 Python2.7 和 Python 3.7。当我在 Python3.7 项目中创建一个 venv 时,它“看到”了 Python2.7 的全局包,即:我正在运行一个烧瓶项目而没有安装任何东西(甚至烧瓶)并且它可以工作,因为所有必需的包都存在在2.7安装。

当我python -v在 venv 中运行时,我得到 3.7,但是当我运行时,flask --version我得到:

Flask 0.12.2
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)]

编辑:我发现我c:\Python27在我的 PATH 中,如果我删除它,一切都会按预期工作。但其他事情对我来说很糟糕。有没有办法仅在激活虚拟环境时从路径中删除 Python27?

编辑:这是我的pyvenv.cfg

home = c:\Python37
include-system-site-packages = false
version = 3.7.2

如何将 venv 与本地环境的其他部分完全分开?

谢谢

标签: pythonpython-3.xpython-venv

解决方案


虚拟环境的整体理念是它是一个没有安装任何 pip 库的全新工作环境。
如果您激活您的虚拟环境,您应该不会看到任何已安装的软件包,除非您明确安装它们。
几点建议:
1.尝试从python2.7全局包中卸载flask,看看会发生什么。
2. 从 python3.7 重复相同的操作。
3. 确保 python2.7 和 python3.7 有不同的别名,并使用正确的别名来创建 vend 。


推荐阅读