2013-07-22 48 views
3

我有安装在C:\Python27的64位Python 2.7.5。如何在Windows中激活virtualenv时取消设置PYTHONHOME?

我的环境变量如下:

Path: %PYTHONHOME%\Scripts; 
PYTHONHOME: C:\Python27; 
PYTHONPATH: C:\Python27\Lib;C:\Python27\Lib\lib-tk;C:\Python27\DLLs; 

我创建了一个名为“富”的virtualenv,但注意到,pip freeze激活FOO后显示的所有包从我的全球安装。

玩过后,似乎删除PYTHONHOME变量修复此问题; pip freeze然后只看到我的virtualenv中安装的软件包。

但是,我目前必须手动删除PYTHONHOME。有一个在virtualenv中的Scripts\activate脚本的Blurb应该清除它,但似乎没有($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下以某种方式修改激活脚本?

谢谢!

回答

0

在创建虚拟ENV你可以使用--no-站点包标志作为这样的:

virtualenv env_name --no-site-packages 

然后如说in the documentation

.. [中的virtualenv]不会包括全局安装的软件包。

+0

此选项现已[弃用](https://virtualenv.pypa.io/en/stable/reference/?highlight=no-site-packages#cmdoption-no-site-packages) – Lucas