gpt4 book ai didi

python - 如何使用相对导入将 python 脚本拆分为多个文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:50 25 4
gpt4 key购买 nike

我有 import.py 脚本。我想将一些代码提取到一个单独的文件中,比如 m1.py:

$ ls
import.py m1.py

$ cat import.py
from .m1 import a
a()

$ cat m1.py
def a():
print('it works')

$ python import.py
Traceback (most recent call last):
File "import.py", line 1, in <module>
from .m1 import a
ModuleNotFoundError: No module named '__main__.m1'; '__main__' is not a package

当我切换到绝对导入时,它起作用了。但我不想不小心导入其他模块。我想确保脚本目录中的模块已导入。我如何让它发挥作用?或者我做错了什么?

最佳答案

如果您没有覆盖内置模块。默认情况下,python 首先在当前目录中查找要导入的文件名。因此,如果另一个目录中有另一个同名脚本,则只有当前目录中的脚本才会被导入。

然后,您可以使用绝对导入进行导入。

from m1 import a
a()

可以查看this发布,以获取有关在 python 中导入的更多信息。

要确保您导入的不是内置的。您可以在当前目录中创建自己的包,例如,“my_package”,并将模块 m1 移动到其中。然后您可以通过以下方式导入:

from my_package import m1
m1.a()

关于python - 如何使用相对导入将 python 脚本拆分为多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44488593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com