mod_python не обнаруживает файлы при использовании open () - PullRequest
0 голосов
/ 15 февраля 2010

Я пытаюсь открыть файл в моем / var / www / каталоге с именем cardlist.xml. это код, который я использую.

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

Моя ошибка

MOD_PYTHON ERROR

ProcessId: 11361 Переводчик:
'127.0.1.1'

имя_сервера: '127.0.1.1' DocumentRoot: '/ var / www'

URI: '/test.py/crawlXml' Расположение: Нет Каталог:
'/ var / www /' Имя файла:
'/var/www/test.py' PathInfo:
'/ CrawlXml'

Фаза: 'PythonHandler' Обработчик: 'mod_python.publisher'

Traceback (последний вызов был последним):

Файл "/Usr/lib/python2.6/dist-packages/mod_python/importer.py", строка 1537, в HandlerDispatch default = обработчик default_, 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 результат = объект (аргумент)

Файл "/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, в open ("./ cardlist.xml", "r")

IOError: [Errno 2] Нет такого файла или каталог: './cardlist.xml'

ДЕТАЛИ МОДУЛЯ КЭША

Доступ: вс 14 февраля 16:59:58 2010 Поколение: 19

_mp_27cc55c5447f9e0aa13691719290c225 {FileName: '/var/www/test.py'
Экземпляр: 85 [RELOAD]
Поколение: 19 [ОШИБКА] Изменено:
Вс 14 февраля 16:40:17 2010 импортировано:
Вс 14 февраля 16:22:38 2010}

Это результат ls -la в

/ var / www / каталог drwxr-xr-x 3 root root 4096 14-02-2010, 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 root 4096 2010-02-14 14:31 мтг -rw-r - r-- 1 корневой корень 110 2010-02-14 16:40 test.py -rw-r - r-- 1 корневой корень 111 2010-02-14 16:32 test.py ~

Кто-нибудь знает, что идет не так?

1 Ответ

3 голосов
/ 15 февраля 2010

Рабочий каталог может не являться каталогом файла. Попробуйте использовать абсолютный путь или явно относительный путь:

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