virtualenv编辑系统范围的设置

时间:2015-05-05 11:33:56

标签: python django virtualenv

我使用以下命令安装了新的虚拟环境:

sudo virtualenv --python=python3.4 mysite

然后,我编辑了新创建的文件夹的权限:

sudo chmod -R 777 mysite/

然后我继续激活虚拟环境:

source mysite/bin/activate

virtualenv在提示之前显示(mysite)时激活。

在我的系统范围的python包上安装了django 1.7.1版。我想将django 1.8安装到virtualenv。所以,我这样做了:

sudo pip3 install django==1.8

但令我恐惧的是,它从我的系统中删除了django 1.7.1并在系统上安装了1.8,而不仅仅是我想要的virtualenv。

我通过运行确认了这一点:

python -c "import django; print(django.get_version())"

当virtualenv被激活和停用时,它都返回1.8。

如何在virtualenv中安装1.8,而不影响系统范围的django版本?

3 个答案:

答案 0 :(得分:2)

无需使用sudo virtualenv仅使用virtualenv

virtualenv的目的是获得孤立的python环境。

当你进入virtualenv时,不要使用sudo pip / sudo pip3。 使用没有sudo的pip。 sudo pip用于在系统范围内安装python包。

因此,正常的工作流程是

virtualenv --python=python3.4 mysite
source mysite/bin/activate

pip install <package_name_version>,例如pip install django==1.8

答案 1 :(得分:1)

我的猜测是指定要使用的python / pip的环境变量(尤其是PATH)不会通过sudo传递。你为什么还要sudo任何东西?只需创建virtualenv作为您的用户,将bin / activate作为您的用户,并以您的用户身份运行pip。

有关详细信息:man sudoers并搜索Command environment

答案 2 :(得分:0)

在通过pip安装djando时不要使用sudo,并尝试使用sudo less来创建虚拟环境和更改权限。 我已经尝试过这种方式并且已经完成了