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,而不仅仅是我想要的虚拟vertualenv。

我通过运行:

确认了这一点
python -c "import django; print(django.get_version())"

当Virtualenv被激活并停用时,它返回1.8。

如何仅在Virtualenv内部安装1.8,而不会影响系统范围的Django版本?

无需使用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

我的猜测是,指定要使用的Python/pip的环境变量(尤其是路径)不会通过sudo。你为什么要撒些什么?只需将Virtualenv创建为用户,源bin/AINSTIAN作为用户,然后作为用户运行PIP即可。

有关更多信息:man sudoers并搜索Command environment

在通过PIP安装Djando时不要使用sudo,也尝试使用Sudo少用于创建虚拟Env和更改权限。我已经尝试过这样的方法

最新更新