distutils可以创建空的__init__.py文件吗?

时间:2008-09-13 05:51:17

标签: python version-control distutils

如果我的所有__init__.py文件都是空的,是否必须将它们存储到版本控制中,或者有没有办法让distutils在安装期间创建空的__init__.py文件? / p>

2 个答案:

答案 0 :(得分:7)

在Python中,__init__.py文件实际上有意义!它们意味着它们所在的文件夹是Python模块。因此,它们在您的代码中具有真正的作用,并且最有可能存储在版本控制中。

您可以想象源树中的文件夹不是Python模块,例如只包含资源(例如图像)且没有代码的文件夹。该文件夹不需要包含__init__.py文件。现在,你如何区分distutils应该创建这些文件的文件夹和不应该创建文件夹的文件夹?

答案 1 :(得分:4)

您是否有理由避免将空__init__.py个文件放入版本控制中?如果你这样做,你将无法在没有首次运行distutils的情况下从源目录中import你的包。

如果你真的想,我想你可以在__init__.py中创建setup.py。在运行distutils.setup之前必须,因此setup本身可以找到您的包:

from distutils import setup
import os

for path in [my_package_directories]:
    filename = os.path.join(pagh, '__init__.py')
    if not os.path.exists(filename):
        init = open(filename, 'w')
        init.close()

setup(
...
)

但是......与首先拥有空__init__.py个文件相比,你会从中获得什么?