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为什么?
答
的问题,如果你创建virtualenv
没有sudo
命令时,
virtualenv
可用来创建用户一个单独的环境,
所以如果你没有sudo
命令运行python manage.py runserver
它会正常运行,
否则install
django
将sudo
右边后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,因为它是一个独立的环境。
你**不得**用sudo运行这样的事情。这是一个巨大的安全风险。 –