我阅读了各种答案(relative import),但没有人能够导入一个简单的类。我有这个结构:
__init__.py (empty)
my_script.py
other_script.py
my_class.py
我想在两个脚本中使用 my_class.py ( my_script.py 和 other_script.py )。像所有答案建议的那样,我只是使用:
from .my_class import My_class
但我总是得到
SystemError:父模块''未加载,无法执行相对导入
我正在使用 Python 3.5 和 PyCharm 2016.1.2 。我需要配置__init__.py
吗?如何导入一个简单的类?
修改
所有文件都在工作目录中。我只是使用Pycharm来运行,在尝试导入类之前我没有遇到问题。
答案 0 :(得分:1)
确保您当前的工作目录 不 包含这些文件的目录。例如,如果__init__.py
的路径为spam/eggs/__init__.py
,请确保您在目录spam
中工作 - 或者/path/to/spam
位于sys.path
并且您在第三名工作。无论哪种方式,都不要尝试在目录eggs
中工作。要测试代码,请说import eggs
。
推理如下。由于您使用的是__init__.py
,因此您显然希望将此文件集合视为package。要作为包工作,目录必须满足以下两个条件:
__init__.py
如果您正在内部包目录中,那么您可能无法满足标准2.您可以从那里做一个简单的import my_class
,当然,但是“相对导入”的事情你“尝试是一种只有完整工作包才能支持的功能。”