Python distutils能否创建空的\uuuu init\uuuuuuu.py文件?

Python distutils能否创建空的\uuuu init\uuuuuuu.py文件?,python,version-control,distutils,Python,Version Control,Distutils,如果我所有的uuu init uuuuuuuuuuupy.py文件都是空的,那么我是否必须将它们存储到版本控制中,或者是否有办法让distutils在安装过程中创建空的uuuu init uuuuuuuuuupy.py文件?在Python中,uuu init uuuuuuuuuupy.py文件实际上是有意义的!它们意味着它们所在的文件夹是一个Python模块。因此,它们在您的代码中扮演着真正的角色,很可能应该存储在版本控制中 您可以很好地想象源代码树中的一个文件夹不是Python模块,例如一个只

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

在Python中,uuu init uuuuuuuuuupy.py文件实际上是有意义的!它们意味着它们所在的文件夹是一个Python模块。因此,它们在您的代码中扮演着真正的角色,很可能应该存储在版本控制中


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

是否有理由避免在版本控制中放置空的\uuuu init\uuuuuuuy.py文件?如果您这样做,您将无法在不首先运行distutils的情况下从源目录导入包

如果您真的愿意,我想您可以在setup.py中创建_uinit__uuuuuuuuuuuuuy.py。它必须在运行distutils.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(
...
)

但是。。。与首先在那里有空的_uinit__uu.py文件相比,您从中获得了什么

这就是问题所在,您能否告诉distutils,即使给定文件夹没有init.py文件,也应将其解释为包。在构建发行版时,我总是可以创建init.py文件,但我想知道您是否可以使用distutils来创建。是的,有一种技术可以告诉distutils和任何其他Python代码文件夹就是一个包:将init.py文件放在文件夹中。这正是我想要的答案:可以使用distutils来完成,但你不应该。