从子目录 python 导入 类

Import classes from child directory python

我一直在尝试导入一些在子目录中定义的 python 类。目录结构如下:

workspace/
    __init__.py
    main.py
    checker/
       __init__.py
       baseChecker.py
       gChecker.py

baseChecker.py 类似于:

import urllib
class BaseChecker(object):
    # SOME METHODS HERE

gChecker.py 文件:

import baseChecker # should import baseChecker.py
class GChecker(BaseChecker): # gives a TypeError: Error when calling the metaclass bases
    # SOME METHODS WHICH USE URLLIB

最后 main.py 文件:

import ?????
gChecker = GChecker()
gChecker.someStuff() # which uses urllib

我的意图是能够 运行 main.py 文件并调用 checker/ 目录下的 类 实例化。但我想避免从每个文件导入 urllib(如果可能的话)。

请注意,__init__.py 都是空文件。

我已经尝试在 main.py 中调用 from checker.gChecker import GChecker,但显示 ImportError: No module named checker.gChecker

在发布的代码中,在 gChecker.py 中,您需要执行

from baseChecker import BaseChecker

而不是import baseChecker 否则你会得到

NameError: name 'BaseChecker' is not defined

此外,使用上述文件夹结构,您不需要 checker 模块位于 PYTHONPATH 中,以便 main.py 可见 然后在 main.y 你可以做:

from checker import gChecker.GChecker