首页 > 解决方案 > setuptools 的 find_packages 是否需要 __init__.py 文件或不识别包

问题描述

setuptools 是否find_packages仍然要求包__init__.py里面有一个文件?

文件说_

__init__.py只有包含文件的包才会被识别。

但是我读到__init__.py不再需要文件来将目录标记为 python 包。

标签: pythonsetuptoolspython-packaging

解决方案


更新

回头看,原来的答案是错误的。

包初始化程序__init__.py文件)应该始终存在。由于一些实现细节,它确实可以在没有的情况下工作,但它不是严格意义上的东西,也不是应该依赖的东西。

一些细节:


原始答案

在最新版本的 Python 中,包初始化程序__init__.py文件)并不是绝对必要的,这意味着可以导入此类包等等。

但是setuptools不是 Python,可以这么说。特别是find_packages它的查找仍然基于此类文件的存在。另一方面,setuptools还提供了替代find_namespace_packages功能,即能够找到不包含包初始化程序的包。


推荐阅读