Как импортировать модули из разных папок? У меня есть следующие
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
Просто выработайте каталог, из которого вы работаете, как сказано в 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
(или эквивалент) установлен неправильно.
Вы пытались:
from ..xml import XmlDocumentCreator
?
В общем, я рекомендую вам прочитать разделы Путь поиска модуля и Intra- Ссылки на @http://docs.python.org/tutorial/modules.html