使用open()时mod_python没有检测到文件

时间:2010-02-14 22:04:06

标签: python apache2 mod-python

我正在尝试在名为cardlist.xml的/ var / www /目录中打开一个文件。 这是我正在使用的代码。

import cgi
import os
open("./cardlist.xml", "r")
def crawlXml():
    return 0

我的错误是

  

MOD_PYTHON ERROR

     

ProcessId:11361口译员:
  '127.0.1.1'

     

ServerName:'127.0.1.1'   DocumentRoot:'/ var / www'

     

URI:'/ test.py/crawlXml'   位置:无目录:
  '/ var / www /'文件名:
  '/var/www/test.py'PathInfo:
  '/ crawlXml'

     

阶段:'PythonHandler'   处理程序:'mod_python.publisher'

     

追踪(最近一次呼叫最后一次):

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第1537行,在HandlerDispatch中       default = default_handler,arg = req,silent = hlist.silent)

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第1229行,在_process_target中       result = _execute_target(config,req,object,arg)

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第1128行,在_execute_target中       result = object(arg)

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/publisher.py”   第204行,处理程序       module = page_cache [req]

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第1059行, getitem       return import_module(req.filename)

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第296行,在import_module中       log,import_path)

     

文件   “/usr/lib/python2.6/dist-packages/mod_python/importer.py”   第680行,在import_module中       execfile(文件,模块。 dict

     

文件“/var/www/test.py”,第4行,in          打开(“./ cardlist.xml”,“r”)

     

IOError:[Errno 2]没有这样的文件或   目录:'。/ cardlist.xml'

     

MODULE CACHE DETAILS

     

访问:Sun Feb 14 16:59:58   2010年代:19

     

_mp_27cc55c5447f9e0aa13691719290c225 {FileName:'/ var / www / test.py'
  实例:85 [RELOAD]
  代:19 [错误]修改:
  Sun Feb 14 16:40:17 2010进口:
  Sun Feb 14 16:22:38 2010}

这是

中ls -la的结果
  

/ var / www /目录drwxr-xr-x 3 root   root 4096 2010-02-14 16:40   drwxr-xr-x 16 root root 4096   2010-02-14 15:05 ..   -rwxr-xr-x 1 root root 4612891 2010-01-30 16:39 cardlist.xml   drwxrwx --- 3根root 4096   2010-02-14 14:31 mtg   -rw-r - r-- 1 root root 110 2010-02-14 16:40 test.py   -rw-r - r-- 1 root root 111 2010-02-14 16:32 test.py~

有谁知道出了什么问题?

1 个答案:

答案 0 :(得分:3)

工作目录可能不是文件的目录。尝试使用绝对路径或显式相对路径:

import os.path
open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'cardlist.xml'))