我有一个django网站设置并在Ubuntu上的python虚拟环境(venv)中配置,一切正常。现在为了在port80上运行我的服务器,我需要使用" sudo"它不会在虚拟环境的上下文中执行,引发错误(即没有名为django的模块......)
有没有办法获得" sudo"在python虚拟环境的上下文中执行?!
答案 0 :(得分:3)
不,你不需要这样做。您不应该尝试在端口80上运行开发服务器;如果您正在设置生产环境,请使用正确的服务器。
答案 1 :(得分:1)
正如@DanielRoseman所说,你不应该在生产中使用Django开发服务器。
但是如果你需要在端口80上运行开发服务器,你必须直接引用虚拟环境python可执行文件。
sudo ../bin/python manage.py runserver localhost:80
答案 2 :(得分:-1)
This should be the solution. 即便如此,我也不愿意这样做。如果你需要在Python中使用sudo,你可能会走错路。
答案 3 :(得分:-1)
这就是诀窍:
$ sudo -- sh -c './venv-bin-path/activate; gunicorn <params> -b 0.0.0.0:80'