distutils能创建空的__init__.py文件吗?
如果我所有的 __init__.py
文件都是空的,我还需要把它们放进版本控制里吗?或者有没有办法让 distutils
在安装的时候自动创建空的 __init__.py
文件?
2 个回答
7
在Python中,__init__.py
文件是有特别意义的!它表示这个文件所在的文件夹是一个Python模块。因此,这个文件在你的代码中是有实际作用的,通常也应该放在版本控制中。
你可以想象一下,有一个文件夹里面只放了一些资源,比如图片,而没有任何代码。这样的文件夹就不需要有 __init__.py
文件。那么,怎么区分哪些文件夹需要创建这个文件,哪些不需要呢?
4
你有没有想过为什么想要避免把空的 __init__.py
文件放进版本控制里?如果你这样做的话,你就不能在不先运行 distutils 的情况下,从源代码目录中import
你的包。
如果你真的想这么做,我想你可以在 setup.py
里创建 __init__.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
文件放在那儿相比,你这样做有什么好处呢?