0

我有一个 django 网站设置并在 Ubuntu 上的 python 虚拟环境 (venv) 中进行配置,一切正常。现在为了在端口 80 上运行我的服务器,我需要使用不在虚拟环境上下文中执行的“sudo”,从而引发错误(即没有名为 django 的模块......)

有没有办法让“sudo”在 python 虚拟环境的上下文中执行?!

4

4 回答 4

3

不,你不需要这样做。您不应该尝试在端口 80 上运行开发服务器;如果您要设置生产环境,请使用合适的服务器。

于 2016-06-13T10:36:02.950 回答
1

正如@DanielRoseman 所说,您不应该在生产中使用 Django 开发服务器。

但是如果你需要在 80 端口上运行开发服务器,你必须直接引用使用虚拟环境 python 可执行文件。

sudo ../bin/python manage.py runserver localhost:80
于 2016-06-13T12:21:21.493 回答
-1

这应该是解决方案。 即使我真的不建议这样做。如果你在 Python 中需要 sudo,你可能走错了路。

于 2016-06-13T10:39:26.703 回答
-1

这成功了:

$ sudo -- sh -c './venv-bin-path/activate; gunicorn <params> -b 0.0.0.0:80'
于 2016-06-13T11:08:44.867 回答