Python 使用包名导入模块
Python import module with package name
我已经阅读了很多关于这个问题的问题,但仍然有一些问题。
首先我想解释一下我想做什么
我有这个文件系统
Project/
└──main.py
└──transformations/
└──__init__.py
└──translate.py
└──rotate.py
└──scale.py
并且main.py是:
import transformations
if __name__ == "__main__":
print("Main:")
transformations.translate.test()
transformations.rotate.test()
transformations.scale.test()
每个 test() 只是在控制台上打印“Hello”。
搜索我能够以某种方式使它工作给 __ init__.py 以下命令行:
import transformations.translate
import transformations.rotate
import transformations.scale
所以当我尝试 运行 来自 main.py 的代码时,代码按预期执行但是 VSCode 给我任何自动完成建议,所以我不知道我是否正确地做事.
正如您在此 image.When i write "transformations." vscode wont give me any prompt to autocomplete "translate" "rotate" or "scale". And if i write the function call of the module anyways 中看到的那样,它 运行 是预期的,但 vscode 无法将其识别为模块或函数,就像它对数学模块中的 sqrt 所做的那样如第二张图片所示,其中“sqrt”为黄色。
所以,基本上,总而言之,代码按我想要的方式工作,但我不确定我是否正确地做事,因为 vscode 自动完成器和颜色格式化程序没有检测包文件夹中的脚本.
提前致谢!
因为您没有将它们作为模块导入到 __init__.py
文件中。您可以使用 from ...import...
形式导入到 __init__.py
文件中。如下图
from transformations import translate
from transformations import rotate
from transformations import scale
希望对您有所帮助。
我已经阅读了很多关于这个问题的问题,但仍然有一些问题。
首先我想解释一下我想做什么
我有这个文件系统
Project/
└──main.py
└──transformations/
└──__init__.py
└──translate.py
└──rotate.py
└──scale.py
并且main.py是:
import transformations
if __name__ == "__main__":
print("Main:")
transformations.translate.test()
transformations.rotate.test()
transformations.scale.test()
每个 test() 只是在控制台上打印“Hello”。
搜索我能够以某种方式使它工作给 __ init__.py 以下命令行:
import transformations.translate
import transformations.rotate
import transformations.scale
所以当我尝试 运行 来自 main.py 的代码时,代码按预期执行但是 VSCode 给我任何自动完成建议,所以我不知道我是否正确地做事.
正如您在此 image.When i write "transformations." vscode wont give me any prompt to autocomplete "translate" "rotate" or "scale". And if i write the function call of the module anyways 中看到的那样,它 运行 是预期的,但 vscode 无法将其识别为模块或函数,就像它对数学模块中的 sqrt 所做的那样如第二张图片所示,其中“sqrt”为黄色。
所以,基本上,总而言之,代码按我想要的方式工作,但我不确定我是否正确地做事,因为 vscode 自动完成器和颜色格式化程序没有检测包文件夹中的脚本.
提前致谢!
因为您没有将它们作为模块导入到 __init__.py
文件中。您可以使用 from ...import...
形式导入到 __init__.py
文件中。如下图
from transformations import translate
from transformations import rotate
from transformations import scale
希望对您有所帮助。