繁体   English   中英

如何使sudo在当前的python虚拟环境中执行?

[英]How to make sudo execute in current python virtual environment?

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

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

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

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

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

sudo ../bin/python manage.py runserver localhost:80

这应该是解决方案。 即使我真的不建议这样做。 如果您需要在Python中使用sudo,则可能是错误的方法。

这成功了:

$ sudo -- sh -c './venv-bin-path/activate; gunicorn <params> -b 0.0.0.0:80'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM