报错:
Traceback (most recent call last):
File “”, line 198, in run_module_as_main
File “”, line 88, in run_code
File "D:\python\helloworld.venv\Scripts\pip.exe_main.py", line 4, in
File "D:\python\helloworld.venv\Lib\site-packages\pip_init.py", line 6, in
from package import module1
ModuleNotFoundError: No module named ‘package’
原因:
在__init__.py里导入了自定义的
#导入自定义的包或者模块
from package import module1
all = [“module1”]
解决方案 :
将#导入自定义的包或者模块
from package import module1
all = [“module1”] 注释掉
init.py是什么?
init.py是一个特殊的文件,用于将一个目录变为一个Python包。 它可以通过定义包级别的变量和函数,为整个包提供一些初始化设置。例如,可以在__init__.py中导入其他模块或定义包级别的变量和函数,使得这些设置在整个包中可用12。
init.py的主要作用包括:
标识包:Python解释器通过查找目录中是否存在__init__.py文件来判断该目录是否为一个包。如果没有__init__.py文件,Python解释器会将其视为普通的目录,而不是包24。
初始化包:当导入一个包时,Python解释器会首先执行该包下的__init__.py文件。可以在__init__.py中执行一些初始化操作,如设置全局变量、导入特定模块或子包等13。
控制包的导入行为:通过在__init__.py文件中定义__all__变量,可以控制在使用from package import *语句时导入哪些模块或变量23。
示例说明:
假设有一个名为my_package的包,包含两个模块module1.py和module2.py。可以在my_package文件夹的根目录下创建一个名为__init__.py的空文件,并在其中定义一些包级别的变量和函数。这样,这些变量和函数就可以在整个包中使用,而无需在每个模块中重新定义12。