如何检查目录是否是python包?

问题描述:

如果我想检查一个目录是否是python包,是否足以检查一个目录是否包含__init__.py文件?如何检查目录是否是python包?

+0

@vaultah真的吗? '__init __。py'不再需要? –

+0

有什么理由不能在这里“请求原谅不允许”的事情?所以你会'尝试:从foo导入栏'和'除了:...' –

+0

@RoyPrins我正在编写一个命令行工具来将一个目录当作我的工具的一个项目,我需要找到那里的目录那个python包,所以我的工具知道它可以使用哪些包。试图导入每个目录似乎有点不安全,因为我可能不小心导入了与非包目录相同名称的包。 –

在Python 3.3之前,只有包含__init__.py文件的目录才被视为软件包(见术语表中的regular package)。

由于在Python 3.3,中增加了namespace packages,所以每个目录在技术上都是Python包。

基础上documentation

__init__.py文件都需要做出基于答案这里的Python视该目录为一个包

更新

Is __init__.py not required for packages in Python 3? 你可以看到它不再是一个要求。