如果我的所有__init__.py
文件都是空的,是否必须将它们存储到版本控制中,或者有没有办法让distutils
在安装期间创建空的__init__.py
文件? / p>
答案 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
个文件相比,你会从中获得什么?