Python 子模块导入

Python sub module import

假设我有一个带有 GUI 的应用程序。

文件夹结构为:

\project
   run.py
   gui.py
   \tracker
      tracker.py
      trackerdialog.py
      trackerDB.py

run.py 是主要的应用程序入口点。它导入了一堆包,包括“import tracker.tracker”

在我处理 tracker.py 时,tracker.py 显示: import trackerDialog, trackerDB

当我 运行 tracker.py 时,一切正常,但当我从 run.py 导入跟踪器时。 run.py 错误“没有名为 trackerDialog 的模块”

导入此子模块的正确方法是什么,以便我可以将其隔离为 tracker.py 进行测试,但仍然 run.py 能够导入它?

基于主程序的工作目录

from tracker import trackerdialog, trackerDB

您可能还需要编写一个字面命名为 __init__.py 的文件(它不需要任何内容​​),以将目录 ./tracker 标记为包含 Python 库(更多内容:What is __init__.py for? )


要将文件用作目录中的库又直接运行使用文件,请考虑

  • 在根目录中创建一个专用的 运行ner
  • try/excepting ImportError
    try:
        from tracker import trackerdialog, trackerDB
    except:
        import trackerDialog, trackerDB