python virtualenv:为什么我仍然可以在干净/新的 virtualenv 中导入旧模块

Hof*_*off 4 python virtualenv

我正在开始一个新的 Python 项目,我想使用virtualenv来有一个干净的开始。设置好之后,我仍然可以导入我没有为新的 virtualenv 安装的旧模块 - 为什么?

我创建了一个:

virtualenv ~/virtualenvs/mynewproject --no-site-packages
Run Code Online (Sandbox Code Playgroud)

现在我激活 source bin/activate

现在,当我启动 python 解释器时(只需键入python),我认为它将在我的 virtualenv 中使用 python 解释器,并且我的 pythonpath 将被设置为我的 virutalenv 的 python 的站点包路径(/virtualenvs/mynewporject/lib /python2.7/site-packages),仅此而已。

然而,当我查看 sys.path 时,所有旧的、系统范围的包都可用,我可以很好地导入它们——这是我不想要的。

我在这里缺少什么?

Pio*_*ost 5

检查您的PYTHONPATH环境变量,该变量可能指向您拥有旧版本软件包的位置。这个变量总是在你的第一个,sys.path所以确保你清除它或将它更改为指向你激活的 virtualenv。