0

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

4

2 回答 2

7

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

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

于 2008-09-13T09:19:56.330 回答
4

您是否有理由避免将空__init__.py文件放入版本控制中?如果您这样做,您将无法import从源目录中获取您的包,而无需首先运行 distutils。

如果你真的想,我想你可以__init__.pysetup.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但是......与首先在那里有空文件相比,你会从中获得什么?

于 2008-09-13T12:46:50.657 回答