如何在Python Spyder IDE中使用相对导入

3 投票
1 回答
1170 浏览
提问于 2025-04-18 03:27

我安装了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 时运行的命令。

撰写回答