apache2 和 mod wsgi:目标 WSGI 脚本无法作为 Python 模块加载

2024-01-06

我正在尝试在 ubuntu 上的 apache2 上安装 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

我用谷歌搜索了这个错误,找到了很多解决方案(大多数时候是针对 Django 项目)。 我所理解的是,我需要创建一个__init__.py文件。 我所做的,这是我的__init__.py file :

__all__ = ['app','get_size_dir','get_nbrf_dir','getStats'] #name of my functions
import index # my three python files
import analyz
import test-wsgi

In the __all__list,这是三个文件中函数的名称。 我只是想启动 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()

那么出了什么问题呢? 谢谢你,

编辑 : 这是我的 apache2conf :

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>

编辑之二: 所以我尝试按照我在 django doc 上读到的那样去做。 我将 apache2conf 更改为:

WSGIPythonPath /var/www/languageAnalyz
<VirtualHost *:80>
  ...
   WSGIScriptAlias /IPA /var/www/languageAnalyz/testwsgi.py
    <Directory /var/www/languageAnalyz/>
            Options +Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
            DirectoryIndex testwsgi.py
    </Directory>

  ...
</VirtualHost>

我重新启动 apache2,出现了同样的错误,并且之前又出现了一个错误:

[Sun Aug 25 12:47:18 2013] [notice] caught SIGTERM, shutting down
[Sun Aug 25 12:47:19 2013] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Sun Aug 25 12:47:19 2013] [notice] FastCGI: process manager initialized (pid 7879)
[Sun Aug 25 12:47:19 2013] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Sun Aug 25 12:47:19 2013] [notice] mod_python: using mutex_directory /tmp
[Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Compiled for Python/2.7.3.
[Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Runtime using Python/2.7.4.
[Sun Aug 25 12:47:19 2013] [notice] Apache/2.2.22 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 PHP/5.4.9-4ubuntu2.2 mod_python/3.3.1 Python/2.7.4 mod_ruby/1.2.6 Ruby/1.8.7(2012-02-08) mod_wsgi/3.4 configured$
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
[Sun Aug 25 12:47:19 2013] [error] Status: 200 OK\r
[Sun Aug 25 12:47:19 2013] [error] Content-Type: text/plain; charset=utf-8\r
[Sun Aug 25 12:47:19 2013] [error] \r
[Sun Aug 25 12:47:19 2013] [error] hello world!
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): Target WSGI script '/var/www/languageAnalyz/testwsgi.py' cannot be loaded as Python module.
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/testwsgi.py' ignored.
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]   File "/var/www/languageAnalyz/testwsgi.py", line 10, in <module>
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]     WSGIServer(app).run()
[Sun Aug 25 12:47:19 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 12:47:19 2013] [error] [client 127.0.0.1]     sock = self._setupSocket()
[Sun Aug 25 12:47:19 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 12:47:19 2013] [error] [client 127.0.0.1]     req.run()
[Sun Aug 25 12:47:19 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 12:47:19 2013] [error] [client 127.0.0.1]     self._end(appStatus, protocolStatus)
[Sun Aug 25 12:47:19 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 12:47:19 2013] [error] [client 127.0.0.1]     sys.exit(appStatus)
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] SystemExit: 0

编辑者:

好的,我刚刚成功启动 testwsgi.py。我将应用程序功能更改为应用程序,并在末尾添加一些行:

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')

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


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

  • https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/ https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/

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

另外,你不能这样做:

import test-wsgi

Python 模块名称中不能包含“-”。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apache2 和 mod wsgi:目标 WSGI 脚本无法作为 Python 模块加载 的相关文章

随机推荐

  • 检查没有值的 HTML5 数据属性

    我有一个具有 HTML5 的元素data属性没有值 只有键 如下所示 div Foo div 如果我使用dataset像这样 getElementById 1 dataset foo 那么 这将返回一个空值 并且我无法区分该元素是否具有da
  • monodis 和 ikdasm 有什么区别?

    我使用的是mono 3 8 0 安装后 我发现mono bin 目录中有两个汇编程序 monodis 和 ildasm 在测试过程中 我发现生成的 il 文件不同 ikdasm 生成的文件与 MS Net 中的 ildasm exe 相同
  • C++ 数组(初学者)

    我把数组误认为是向量 抱歉 数组在瑞典语中是向量 我正在制作的程序需要一些帮助 这是一项作业 所以我真的需要了解如何做到这一点 而不仅仅是获取代码 P 我需要创建一个包含 10 个 数字 的数组 我想让它们在程序运行时可编辑 完成此操作后
  • Hibernate 和多线程逻辑

    我正在开发一个 java 独立项目 我需要在多线程应用程序中使用休眠 但我只是不知道如何正确设置它 每个线程处理其他线程的相同进程 当我以非异步方式运行它时 一切都很好 但是当我使用线程调用相同的东西时 休眠就无法正常工作 谁能解释一下在多
  • PHP - 将日期转换为 YYYY-MM-DDTHH:MM:SS

    我想知道是否可以将今天的日期格式化为以下格式 YYYY MM DDTHH MM SS 保留 T 很重要 如下所示 2017 07 20T00 00 00 下面我有 invoice date date Y m d H i s 我不知道如何在中
  • 如何在 nuxt 中使用 google recaptcha?

    我正在使用 nuxt 并且想使用这个库 https github com nuxt community recaptcha module https github com nuxt community recaptcha module 但我
  • React:this.state在for循环中消失

    我怎样才能携带this进入我的 map 环形 它似乎消失了 我正在创建一个 动态表单 用户可以在其中为其表单指定多行输入 我想迭代所有项目state items 并为他们构建表单输入字段 例如 表单以 field 和 autocomplet
  • 找不到案例类的 JsonWriter 或 JsonFormat 类型类

    遵循来自的教程http www smartjava org content first steps rest spray and scala http www smartjava org content first steps rest s
  • Clojure 文档工具的最新技术 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在过去一年左右的时间里 我在 Clojure 讨论列表和其他地方看到了有关记录 Clojure 代码的工
  • 将 powershell 脚本更改为不带省略号的输出 (...)

    我需要有关以下脚本输出的一些帮助 以便输出不会显示省略号 我尝试插入 Format Table Wrap AutoSize但我似乎就是做不到 clear host Add PSSnapin microsoft sharepoint powe
  • Excel VBA 运行时错误 1004

    我正在使用 VBA for Excel 2010 并随机收到以下错误 运行时错误 1004 排序引用无效 请确保它位于要排序的数据内 并且第一个排序依据框不相同或为空 这是代码 Sort the active rows With Activ
  • Eclipse 和 Android 错误“parseSdkContent 失败”

    自从我升级了之后就出现了这个问题Android Tools至 21 1 当我启动 eclipse 时 即使在干净的工作区中 我也会收到错误parseSdkContent failed细节说 com android sdklib device
  • 如何设置 cron 在特定时间只运行一次文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我该如何设置cron在特定时间只运行一次文件 替代方案之一是at https en wikipedia org wiki At comma
  • 在 ASP.Net 应用程序中安全地存储(加密)数据

    我有一个 asp net 应用程序 人们可以使用网络浏览器通过互联网访问该应用程序 它在 Web 服务器上运行并与后端数据库进行通信 一些用户希望使用该应用程序来存储一些私人数据 对此的要求是 1 只有存储数据的用户才能看到它 2 开发人员
  • 在 Python 中将表达式嵌入到字符串中相当于什么? (即 Ruby 中的“#{expr}”)

    在Python中 我想创建一个带有嵌入表达式的字符串块 在 Ruby 中 代码如下所示 def get val 100 end def testcode s lt
  • 获取listview的item双击事件

    我需要做什么才能引用列表视图控件的双击事件
  • WPF Groupbox高度需要动态改变?

    我正在 WPF 中使用组框 组框的内部是一个堆栈面板 堆栈面板中的项目已被删除并添加到其子项中 我遇到的问题是组框中的 Stackpanel 正在更改高度 但 GroupBox 没有 因此它会切断 stackpanel 中添加的其余项目 如
  • 来自最大子记录数的表约束

    考虑以下针对学生和几门课程的模式 Student Regno integer Sname string Degree string Age integer Course Coursecode string Cname string Cred
  • 如何访问 Cloud Firestore 规则内的自定义声明?

    我有一个用户具有以下自定义用户声明 customClaims role admin 如何在云 Firestore 规则中访问此角色属性 管理员 我正在使用下面的代码 但它不起作用 需要做什么才能工作 match companies docu
  • apache2 和 mod wsgi:目标 WSGI 脚本无法作为 Python 模块加载

    我正在尝试在 ubuntu 上的 apache2 上安装 mod wsgi 所以我安装了libapache2 mod wsgi包 我用a2enmod激活他 我有一个网站 languageAnalyz 我试图将其与 mod wsgi 一起使用