在哪种情况下运行__init__.py?
问题描述:
我在当前目录中有__init__.py
文件。在哪种情况下运行__init__.py?
我需要一个完整的环境列表,在该环境下运行该文件。
第一种情况是
import __init__
在同一目录下写入script.py
这个文件运行。
什么是其他情况?
答
A __init__.py
文件在与其对应的包被导入时运行。因此,当您import some_package
时,将执行文件some_package\__init__.py
。从包中导入子模块时,首先加载包。因此import aa.bb.cc
将在加载aa.bb
和aa.bb.cc
之前加载aa(并因此执行aa/__init__.py
)。
文件夹some_package
必须是可发现的,这意味着它必须存在于其中一个sys.path
文件夹中。这包括当前目录。
如果您只是运行一个脚本(python some_script.py
),而碰巧在同一个文件夹中有一个__init__.py
文件,那么这就意味着什么都没有,因为当前文件夹本身不是一个包。 (当然,除非你执行恰好驻留在包内的脚本)。
+0
另外一个:如果你想能够运行这个包,你可以构造一个__main__.py文件(参见[here ](https://*.com/questions/4042905/what-is-main-py)) – Nemelis
'import __init__'真的很奇怪。也许你想'进口。作为......'?想要“运行”一个模块而不是利用它的内容表明设计不好,尽管(对导入吸盘有副作用的模块)。考虑写一个函数,导入('from。import main'),然后调用它。 – Ryan
我把这标记为不清楚。你说过你不想写什么,但是你想写什么_do_?你想要达到什么目的?你能写一个最小的工作例子吗? – ymbirtt
这是我的问题:我不想导入__init__,我希望它自动运行 – Dims