我在C:\Python27
安装了64位Python 2.7.5。
我的环境变量如下:
Path: %PYTHONHOME%\Scripts;
PYTHONHOME: C:\Python27;
PYTHONPATH: C:\Python27\Lib;C:\Python27\Lib\lib-tk;C:\Python27\DLLs;
我创建了一个名为'foo'的virtualenv,但是注意到激活foo后pip freeze
显示了我全局安装中的所有包。
玩完之后,似乎删除PYTHONHOME
变量修复了这个问题; pip freeze
然后才会看到我的virtualenv中安装的软件包。
但是,我目前必须手动删除PYTHONHOME
。 virtualenv的Scripts\activate
脚本中有一个模糊,应该清除它,但似乎不是($env:PYTHONHOME
在激活之前和之后快乐地显示相同的PYTHONHOME
):
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "$PYTHONHOME" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
如何自动清除PYTHONPATH
?是否需要在Windows下以某种方式修改activate脚本?
谢谢!
答案 0 :(得分:0)
创建虚拟环境时,您可以使用--no-site-packages标志:
virtualenv env_name --no-site-packages
说
.. [virtualenv]将不包括全局安装的软件包。