- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 mod_python 和 Apache 的新手,在 GET 请求后我无法将文件返回给用户。我现在有一个非常简单的设置,并希望简单地打开文件并将其写入响应:
from mod_python import apache
def handler(req):
req.content_type = 'application/octet-stream'
fIn = open('response.bin', 'rb')
req.write(fIn.read())
fIn.close()
return apache.OK
但是,当我使用 open() 时出现错误,提示该文件不存在(尽管我已经检查了十几次它确实存在)。使用相对和绝对文件路径时会发生这种情况。
我有两个问题:
谢谢
编辑:找到这个线程后:http://www.programmingforums.org/thread12384.html我发现如果我将文件移动到家以外的另一个目录,open() 对我有用(我在/home/myname/httpdocs 之外使用了别名,但如果我使用/data 它就可以工作)。知道为什么会这样吗?
编辑 2:根据要求,我的调试错误的一部分:
MOD_PYTHON ERROR
ProcessId: 13642
Interpreter: '127.0.1.1'
ServerName: '127.0.1.1'
DocumentRoot: '/var/www'
URI: '/test/mptest.py'
Location: None
Directory: '/home/myname/httpdocs/'
Filename: '/home/myname/httpdocs/mptest.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'mptest'
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
result = _execute_target(config, req, object, arg)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
result = object(arg)
File "/home/myname/httpdocs/mptest.py", line 13, in handler
fIn = open('/home/myname/httpdocs/files/response.bin', 'rb')
IOError: [Errno 2] No such file or directory: '/home/myname/httpdocs/files/response.bin'
最佳答案
要调试这种东西,您需要从正在运行的 mod_python 实例中收集所有信息。
不要搞乱“检查它 [存在] 十几次”。有些假设是不正确的。
做这样的事情来获得一些调试信息。
def handler(req):
req.content_type = 'text/plain'
req.write(os.environ)
req.write(os.getcwd())
# etc.
return apache.OK
编辑
现在您可以瞥见重要的东西。在这种情况下,它可能是权限——您需要使用 os.filestat 来确定。 Apache 以几乎没有可用权限的用户身份运行 mod_python。 Apache 也不喜欢链接,但这不应该影响 mod_python。如果您的文件没有被所有人阅读并且不在正确的目录中,您就会遇到问题。
您可能想切换到 mod_wsgi .
关于python - 如何在 mod_python 中打开和传输文件系统上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795837/
刚刚使用 Python 2.4.3 在 CentOS 5 (Apache 2.2.3) 服务器上安装并配置了 mod_python 3.2.8。 Apache 可以很好地加载它。 我激活了 mpinf
我编写了一个 Django 应用程序,它利用 Python 线程创建网络蜘蛛,该蜘蛛作为一系列线程运行来检查链接。 当我使用 django 测试服务器(内置)运行此应用程序时,该应用程序运行良好,并且
我想在我们的真实世界的 Trac/mod_python 安装中启用侧日志记录,它已经变得非常慢(很多插件,没有那么多票/页面)。 我能否以某种方式代理请求对象,或添加python 跟踪(每次调用都有时
我的 Apache 日志中不断出现这些错误: [error] python_init: Python version mismatch, expected '2.6.5+', found '2.6.6
我是 Python 新手(我正在退出 PHP,因为它越来越糟糕),并且我正在努力移植我的旧代码。一件事: 我有一个带有函数index()和bar()的文件/foo.py,因此,通过发布者我可以访问ht
我正在 Apache 下运行 mod_python。如果我理解正确的话,每个 Apache 进程都运行自己的 Python 解释器。 在所有进程之间共享少量数据的最佳方式是什么?我在这里谈论的只是几百
我在 settings.py 文件中使用如下日志记录设置: logging.basicConfig(level=LOG_LEVEL, format=LOG_FORMAT); handler =logg
我想做一个简单的文件上传表单,我肯定完全没有能力。我已阅读文档和教程,但出于某种原因,我没有收到提交的表单数据。我写了尽可能少的代码来测试,但它仍然无法正常工作。有什么问题吗? def index()
我是 mod_python 和 Apache 的新手,在 GET 请求后我无法将文件返回给用户。我现在有一个非常简单的设置,并希望简单地打开文件并将其写入响应: from mod_python imp
完成安装 mod_python 后,我收到 500 Internal Server Error。我查了一下日志,它说:python_handler:无法获取/创建解释器。 然后我打开一个 python
我正在使用 mod_python 在 Apache 中运行 Trac。我正在开发一个插件,但不确定如何存储/缓存全局变量。 我是 python 的新手,用 google 搜索了这个主题,发现 mod_
我在让我的 Mod Python 正常工作时遇到问题。 我已经按照mod_python手册找到了here 这是我的 Apache 设置(我使用的是虚拟主机): ServerName host
我有一台使用 apache2 和 mod_python 的服务器,它似乎在短时间后重置了全局变量。在此之前,服务器和全局变量的所有功能都完全按照我的预期进行处理。 为了排除某些运行时错误的可能性(尽管
我正在尝试在 Apache 2.2/mod_python 3.2.8 下运行一些 python 代码。最终代码执行 os.fork() 并生成 2 个独立的长期进程。这些进程中的每一个都必须创建一个单
我在 debian 机器上安装了 mod_python,并安装了 python 2.4 和 2.6。我希望 mod_python 使用 2.6,但它找到的是 2.4。如何设置才能使用其他版本。 最佳答
让 python 的日志模块与 apache/modpython 一起工作的标准方法是什么? 我想调用 mylog.warn('whatever') 并导致调用 req.log_error(),其中
我一直在尝试为 mod_python 实现一个单例类。它在处理单个请求时工作正常,但当我从新请求调用时实例化一个新对象(如预期)。我怎样才能拥有一个跨请求具有公共(public)对象的类。它的生命周期
为什么 mod_python 是 oop 而 mod_php 不是? 例子:我们去 www.example.com/dir1/dir2 如果你使用 mod_python,apache 打开 www/d
我想在数据库中保留一些关于用户和位置的统计信息。例如,我想存储“Mozilla”、“Firefox”、“Safari”、“Chrome”、“IE”等...以及版本,可能还有操作系统。 我试图从 Pyt
我正在使用带有 Mod_python 的 Apache Web 服务器运行 Ubuntu。 Web服务器的根目录是/var/www我有一个用于上传文件的表单。上传的文件应通过Python脚本存储在/v
我是一名优秀的程序员,十分优秀!