【发布时间】:2019-02-05 09:59:51
【问题描述】:
我的目录结构如下:
+Root
+B
-module_B.py
-module_A.py
-mainprogram.py
来自
mainprogram.py我正在使用module_B.py中的函数somefun()在
module_B.py中,我在module_A.py中使用anotherfun()函数
但是,当我在 module_B.py 中使用语句 from module_A import anotherfun() 时,当我在运行时运行 mainprogram.py 时,它会在 @ 中给出错误 No module named module_A 987654332@.
所以我将 module_B.py 中的 from module_A import anotherfun() 更改为 from B.module_A import anotherfun() 并且它运行良好,只有 Pylint 在输入 Visual Studio Code 时给我一个错误,虽然无害但很烦人。
【问题讨论】:
-
您的目录中有空的
__init__.py吗? -
是的,这就是原因。但是现在我已经更改了项目的每个 python 文件中的每个
import/from语句,以包含 'fully qualified name' ,它指定了文件相对于根目录的确切位置。Pylint不再显示任何Intellisense错误。我这样做对吗? -
另外,如果我尝试直接从命令行执行任何 'individual' 文件(例如
module_B.py),在这种情况下,它是整个项目,它现在显示关于file路径的错误,因为from/import语句中的完全限定路径名。 这很正常不是吗?!?因为它现在是更大事物的一部分,而不是一个单独的实体,对吗?!? -
我会把它放在简单的上下文中
folder1 -> folder2 -> file1 -> function1正确的导入是from folder1.folder2.file1 import function1确保在根目录和每个文件夹中都有__init__.py
标签: python visual-studio-code pylint