【发布时间】:2020-11-30 11:45:29
【问题描述】:
我一直在努力导入我用 python 编写的模块,使用设置为我的顶级 python 脚本目录的 Spyder IDE。以下是我的文件结构,基于this指南。
root_folder/
submodules
moduleA/
data/ # contains input Excel files
output/ # contains output files
code1.py
moduleB/
data/
output
code2.py
main.py
code3.py
从main.py,我正在尝试使用from .submodules.moduleA import code1 导入code1.py,但出现此错误:"No module named '__main__.submodules'; '__main__' is not a package"
我还尝试从main.py 导入code3.py,为此我尝试使用from . import code3,但我收到与以前类似的错误:cannot import name 'code3' from '__main__' (unknown location)
鉴于我的文件结构,我使用什么命令来相对导入我的模块?
【问题讨论】:
-
相对导入需要安装包;你需要一个 setup.py,也许还有一个
__init__.py。例如这里:stackoverflow.com/questions/44977227/… -
你用的是什么 Python 版本?
-
现在python 3.7.7
-
这里不需要使用相对导入。只需
from submodules.moduleA import code1和import code3。 Python2 略有不同(你需要__init__.py文件在这里和那里),但使用 Python3 你很好 -
我是否误解了“相对进口”是什么?什么情况下你必须使用相对导入?
标签: python