如何在Python Spyder IDE中使用相对导入
我安装了Anaconda Python,并且在使用Spyder这个开发环境。我想弄明白如何在按下运行按钮或者F5键的时候使用相对导入。
假设我有一个文件夹结构是这样的:pkg/A/foo1.py和pkg/A/foo2.py,而foo1.py里面有一行代码是“from . import foo2”,如果我直接运行它,就会报相对导入的错误。
我知道在命令行环境下怎么做,比如我可以输入“python -m pkg.A.foo1”。那么在Spyder这个开发环境里,我该怎么做呢?
谢谢!
1 个回答
-1
如果有一个 pkg/A/__init__.py
文件,也就是说 pkg.A
是一个 Python 包,那么 from . import foo2
这个写法是正确的。你在 spyder IDE、记事本或者 emacs 中写代码的位置并不重要,代码都是一样的。
接下来要问的是你如何在 spyder IDE 中运行 Python 脚本。
不要直接运行包中的模块,也就是说,不要用 python pkg/A/foo1.py
来运行。这样会导致 Python 模块以不同的名字出现。具体可以参考 小心的陷阱。应该在项目目录下用 python -m pkg.A.foo1
来运行。
如果 spyder IDE 允许的话,配置一下按 F5
时运行的命令。