我使用以下命令安装了一个新的虚拟环境:
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和更改权限。我已经尝试过这样的方法