从子目录 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
我一直在尝试导入一些在子目录中定义的 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