gpt4 book ai didi

python - 在 apache+mod_wsgi 下运行 subprocess.Popen 总是返回一个返回码为 -6 的错误

转载 作者:太空狗 更新时间:2023-10-29 20:59:33 24 4
gpt4 key购买 nike

我希望有人看到这个 -

我正在运行 django-compressor,利用 lessc 设置将 less 呈现/压缩到文件的 CSS 中。它在从开发服务器调用时完美运行,但在 apache+mod_wsgi 下运行时,它始终返回错误。

为了调试它,我运行了过滤器作为 www-data 用户(在 WSGIDaemonProcess 指令中定义为 wsgi 用户)调用的确切命令,并验证它是否正常工作,包括读写权限它正在处理的文件。

我还破解了该系统上 compressor/filters/base.py 中的 django-compressor 代码,似乎任何试图调用的命令在 proc.communicate() 调用后都会得到 -6 的返回码.

我希望有人以前看过这个 - 或者它敲响了警钟。它在 apache+mod_wsgi 进程之外的这台机器上也能正常工作(即作为开发服务器运行进程)。我只是不清楚什么可能会阻止 subprocess.Popen() 调用。

最佳答案

您是偶然使用 Python 2.7.2 吗?

那个版本的 Python 引入了一个错误,导致子解释器中的 fork() 失败:

http://bugs.python.org/issue13156

您必须通过设置强制 WSGI 应用程序在进程的主要 Python 解释器中运行:

WSGIApplicationGroup %{GLOBAL}

如果运行多个 Django 应用程序,您需要确保只有受影响的应用程序应用了此配置指令,否则您将导致所有 Django 应用程序在一个解释器中运行,由于 Django 配置的工作方式,这是不可能的。

关于python - 在 apache+mod_wsgi 下运行 subprocess.Popen 总是返回一个返回码为 -6 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com