[英]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 给了我任何自动完成建议,所以我不知道我是否正确地做事。
正如你在这张图片中看到的那样。当我写“转换”时。 vscode 不会提示我自动完成“翻译”“旋转”或“缩放”。 如果我仍然编写模块的函数调用,它会按预期运行,但 vscode 不会像使用数学模块中的 sqrt 那样将其识别为模块或函数,如第二张图所示,它将“sqrt”置于黄色.
因此,基本上,总而言之,代码可以按我的意愿工作,但我不确定我是否正确地做事,因为 vscode 自动完成器和颜色格式化程序没有检测到包文件夹中的脚本。
提前致谢!
因为您没有在__init__.py
文件中将它们作为模块导入。 您可以使用from ...import...
的形式导入__init__.py
文件。 像下面
from transformations import translate
from transformations import rotate
from transformations import scale
希望这对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.