如何在Python中从不同文件夹导入模块?

1 投票
2 回答
1833 浏览
提问于 2025-04-16 18:21

如何从不同的文件夹导入模块?我有以下内容:

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

我想在HttpFormParser.py中导入XmlDocumentCreator。该怎么做呢?

我正在这样做:

import py.xml.XmlDocumentCreator

在HttpFormParser.py中,但出现了以下错误。

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

2 个回答

0

你试过这样做吗:

from ..xml import XmlDocumentCreator

?

一般来说,我建议你去看看模块搜索路径包内引用这两个部分,具体内容可以在这个链接找到。

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

顺便说一下,如果你在使用 WSGI,那么你的 Python 代码就不需要放在 cgi-bin 目录里,因为如果你的 .htaccess(或者类似的设置)配置错误,代码可能会被下载。

撰写回答