Django:使用sudo在虚拟环境中运行服务器

Django:使用sudo在虚拟环境中运行服务器

问题描述:

我在服务器上设置了Django。Django:使用sudo在虚拟环境中运行服务器

我已经激活了我的虚拟环境中,我能够在8000端口成功运行服务器:

python manage.py runserver 

我想用80端口,所以我能够访问的(测试)我的应用程序从外面所以我用:

sudo python manage.py runserver 

但是,这给了我一个错误:

Traceback (most recent call last): 

     File "manage.py", line 17, in <module> 
     "Couldn't import Django. Are you sure it's installed and " 
    ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? 

可有人请expla为什么?

+2

你**不得**用sudo运行这样的事情。这是一个巨大的安全风险。 –

的问题,如果你创建virtualenv没有sudo命令时,

virtualenv可用来创建用户一个单独的环境,

所以如果你没有sudo命令运行python manage.py runserver它会正常运行,

否则installdjangosudo右边后sudo python manage.py runserver

您可以在没有和使用sudo的情况下在virtualenv中检查已安装的用户应用程序。

~$ cd myproject/bin 
~$ source activate 
[myproject]~$ pip list | grep Django 

Django版本安装到您​​当前的virtualenv内这将输出,例如

Django (1.8) 

但是:

[myproject]~$ sudo pip list | grep Django 

给出什么作为输出。所以,你的django软件包没有在sudo权限内被安装。这就是为什么,如果你需要须藤添加到您的每一个命令,你需要使用sudo安装Django:

[myproject]~$ sudo pip install django 

顺便说一句,是不是一个很好的做法,具有root权限的内部运行命令你的virtualenv,因为它是一个独立的环境。