gpt4 book ai didi

python - Python导入包,属性报错

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

我是 Python 的新手,我想了解包和导入语句的工作原理。我做了这个包,位于我的桌面:

package/
__ init __.py
module2.py
subpackage1/
__ init __.py
module1.py

这是包文件夹中 __ init __ .py 的内容:

__ all __ =["module2"]
import os
os.chdir("C:/Users/Leo--/Desktop/Package")
import subpackage1.module1
os.chdir("C:/Users/Leo--/Desktop")

在 subpackage1 文件夹中的 __ init __ .py 中:

__ all __ =["module1"]

我只想通过编写来导入 module1.py 和 module2.py

import package

在解释器中输入上面的命令后,我可以通过编写毫无问题地访问 module1.py 的任何函数

package.subpackage1.module1.mod1()

其中 mod1() 是 module1.py 中定义的函数。但是当我输入

package.module2.mod2()

我收到“AttributeError:模块‘package’没有属性‘module2’”(mod2() 是 module2.py 中定义的函数)。这是为什么?提前致谢!

最佳答案

您收到 AttributeError 是因为您尚未在 __init__.py 文件中导入 module2

您不应该在 __init__.py 中执行 os.chdir() 来导入子模块。

我会这样做:

__ init __.pypackage目录下。

from . import module2
from . import subpackage

__ init __.pysubpackage1 目录下。

from . import module1

关于python - Python导入包,属性报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45400529/

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