Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行python脚本时出错500_Python_Apache_Cgi - Fatal编程技术网

执行python脚本时出错500

执行python脚本时出错500,python,apache,cgi,Python,Apache,Cgi,我最近重新安装了我的Ubuntu PC(到12.04版),不得不重新安装apache。 local.domain.com指向本地主机(虚拟主机)。 script.py被chmod'd改为755。 在我的.htaccess中,我有: Options +ExecCGI AddHandler cgi-script .py 但是我得到一个500:内部服务器错误 cat/var/log/apache2/error.domain.com.log不显示任何内容。 如果在命令行中执行python script

我最近重新安装了我的Ubuntu PC(到12.04版),不得不重新安装apache。
local.domain.com指向本地主机(虚拟主机)。

script.py被chmod'd改为755。
在我的.htaccess中,我有:

Options +ExecCGI
AddHandler cgi-script .py
但是我得到一个500:内部服务器错误
cat/var/log/apache2/error.domain.com.log不显示任何内容。
如果在命令行中执行python script.py,我会得到:


<!-- The above is a description of an error in a Python program, formatted
     for a Web browser because the 'cgitb' module was enabled.  In case you
     are not reading this in a Web browser, here is the original traceback:

Traceback (most recent call last):
  File "script.py", line 32, in <module>
    queryHash = hashlib.sha224(os.environ['QUERY_STRING']).hexdigest()
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'QUERY_STRING'

-->

所以我认为py脚本没有任何错误。它以前是有用的。 但由于某些原因,它不会在浏览器中执行。
我还能错过什么呢?

错误就在你面前:

Traceback (most recent call last):
  File "script.py", line 32, in <module>
    queryHash = hashlib.sha224(os.environ['QUERY_STRING']).hexdigest()
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'QUERY_STRING'

尚未为apache用户设置环境变量
QUERY\u STRING
。你以前是怎么弄到这套的?您可能需要在httpd配置文件中设置它,对于Ubuntu,我不确定它在哪里。

Ubuntu 12.04有python 2.7。我的剧本是这样的:

#!/usr/bin/env python2.6
#!/usr/bin/env python2.6 Apache似乎无法将
QUERY\u字符串
环境变量设置为请求中查询字符串的值。我不是Apache用户,因此我没有其他见解,但这些信息可能对您有用。当脚本在命令行上运行时,会发生(可以预见)错误。@IgnacioVazquez Abrams fair point,应该仔细阅读。我仍然建议在本地设置env变量并再次测试脚本,以诊断代码中的其他潜在错误。奇怪的是没有apache错误日志记录。我确实有一个错误。domain.com.log~。[Sat Jun 30 14:44:08 2012][error][client 127.0.0.1]/usr/bin/env:python2.6:没有这样的文件或目录[Sat Jun 30 14:44:08 2012][error][client 127.0.0.1]脚本头过早结束:script.py #!/usr/bin/env python2.6