我使用以下命令安装了新的虚拟环境:
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版本?
答案 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来创建虚拟环境和更改权限。 我已经尝试过这种方式并且已经完成了