Как импортировать модули из разных папок в Python?

1

Как импортировать модули из разных папок? У меня есть следующие

cgi-bin
       | py
          |
           __init.py__
           http
             |
              __init.py__
              HttpFormParser.py
           xml
             |
              __init.py__
              XmlDocumentCreator.py

Я хочу импортировать XmlDocumentCreator в HttpFormParser.py. Как это сделать?

Я делаю

import py.xml.XmlDocumentCreator

в HttpFormParser.py и вызывая следующую ошибку.

/HttpFormParser.py", line 5, in <module> 
    import py.xml.XmlDocumentCreator
ImportError: No module named py.xml.XmlDocumentCreator
Теги:

2 ответа

1
Лучший ответ

Просто выработайте каталог, из которого вы работаете, как сказано в sys.argv[0]. В этом случае вы хотите получить каталог cgi-bin, так как он содержит py:

import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 
    os.pardir, os.pardir)))
import py.xml.XmlDocumentCreator

P.S. если вы используете WSGI, вам не нужен ваш код Python в каталоге cgi-bin, где он может быть загружен, если ваш .htaccess (или эквивалент) установлен неправильно.

0

Вы пытались:

from ..xml import XmlDocumentCreator

?

В общем, я рекомендую вам прочитать разделы Путь поиска модуля и Intra- Ссылки на @http://docs.python.org/tutorial/modules.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню