Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
apache2和mod wsgi:Target wsgi脚本不能作为Python模块加载_Python_Linux_Apache2_Mod Wsgi_Wsgi - Fatal编程技术网

apache2和mod wsgi:Target wsgi脚本不能作为Python模块加载

apache2和mod wsgi:Target wsgi脚本不能作为Python模块加载,python,linux,apache2,mod-wsgi,wsgi,Python,Linux,Apache2,Mod Wsgi,Wsgi,我正在尝试在apache2和ubuntu上安装mod_wsgi。 所以我安装了libapache2 mod wsgi包,我用a2enmod激活了他 我有一个网站(languageAnalyz),我正试图与mod_wsgi一起使用。 调用localhost/languageAnalyz时,出现了一个错误500 在apache2日志中,我可以看到: [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): T

我正在尝试在apache2和ubuntu上安装mod_wsgi。 所以我安装了libapache2 mod wsgi包,我用a2enmod激活了他

我有一个网站(languageAnalyz),我正试图与mod_wsgi一起使用。 调用localhost/languageAnalyz时,出现了一个错误500

在apache2日志中,我可以看到:

[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): Target WSGI script '/var/www/languageAnalyz/test-wsgi.py' cannot be loaded as Python module.
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/test-wsgi.py' ignored.
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]   File "/var/www/languageAnalyz/test-wsgi.py", line 10, in <module>
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]     WSGIServer(app).run()
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi.py", line 112, in run
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]     sock = self._setupSocket()
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 997, in _setupSocket
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]     req.run()
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 572, in run
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]     self._end(appStatus, protocolStatus)
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 601, in _end
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]     sys.exit(appStatus)
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] SystemExit: 0
\uuuuuuuuuuuuuuuuuuuuuuu
列表中,这是三个文件中函数的名称。 我只是尝试启动test-wsgi.py,并得到相同的错误500

这是我的test-wsgi.py文件:

import os,sys
sys.path.append(os.path.dirname(__file__))
from cgi import escape,parse_qs
from flup.server.fcgi import WSGIServer
def app(environ, start_response):
  start_response('200 OK',[('Content-Type','text/plain; charset=utf-8')])
   yield "hello world!"
WSGIServer(app).run()
那怎么了? 谢谢,

编辑: 这是我的apache2配置文件:

WSGIPythonPath /var/www/languageAnalyz
<VirtualHost *:80>
  ...
  <Directory /var/www/languageAnalyz/>
    Options +Indexes ExecCGI FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    DirectoryIndex index.py
    SetHandler wsgi-script
  </Directory>
  ...
</VirtualHost>
我不知道,为什么它工作,为什么它以前不工作。。。现在我在打开文件时遇到了一些问题,包括它们的路径(配置文件或模板文件…)


我尝试使用绝对路径,但它也不起作用…

对于初学者来说,您似乎遵循了错误的文档。对于mod_wsgi使用:

您似乎正在使用FASTCGI部署文档

此外,您不能执行以下操作:

import test-wsgi
Python模块名称中不能有“-”


总之,请重新阅读(或阅读)关于部署的Django文档。

对于不同的文件,我遇到了相同的问题,使文件世界可执行为我解决了这个问题。您当然希望在将其缩小为您的问题后将其锁定到所需的用户:

chmod a+x test-wsgi.py

对我来说,问题在于wsgi python版本不匹配。我使用的是python 3,所以:

$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi
$ sudo apt-get install libapache2-mod-wsgi-py3

我甚至比以前犯了更多的错误。我也犯了同样的错误,在这之前又犯了一个。我编辑了我的帖子。好的,我刚刚成功地启动了testwsgi.py。我将我的应用程序功能更改为应用程序,并在末尾添加了一些行:
如果从wsgiref.simple\u server import make\u server server=make\u server('localhost',8080,application)server.serve\u forever()
我不知道它为什么工作,为什么以前不工作。。。现在我打开文件时遇到了一些问题,它们的路径(配置文件或模板文件…)不能使用相对路径名,必须使用绝对路径名。当前工作目录将不在您期望的位置。查看是否使用绝对路径名,这可能是权限问题。你可能还想看看这些问题:和
if __name__ == '__main__':
  from wsgiref.simple_server import make_server
  server = make_server('localhost', 8080, application)
  server.serve_forever()
[Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1]   File "/var/www/languageAnalyz/analyz.py", line 22, in getStats
[Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1]     flangs=open('config/languages.yml')
import test-wsgi
chmod a+x test-wsgi.py
$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi
$ sudo apt-get install libapache2-mod-wsgi-py3