Могут ли distutils создавать пустые файлы __init__.py?
-
09-06-2019 - |
Вопрос
Если все мои __init__.py
файлы пусты, мне нужно хранить их в системе контроля версий или есть способ сделать distutils
создать пустой __init__.py
файлы во время установки?
Решение
Есть ли причина, по которой вы хотите избегать положить пустой __init__.py
файлы в системе контроля версий?Если ты это сделаешь, ты не сможешь import
ваши пакеты из исходного каталога без предварительного запуска distutils.
Если вы действительно этого хотите, я полагаю, вы можете создать __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
файлы там в первую очередь?
Другие советы
В Python, __init__.py
файлы на самом деле имеют значение!Они означают, что папка, в которой они находятся, является модулем Python.Таким образом, они играют реальную роль в вашем коде и, скорее всего, должны храниться в системе контроля версий.
Вы вполне можете представить себе папку в дереве исходного кода, которая НЕ является модулем Python, например, папку, содержащую только ресурсы (например,изображения) и без кода.Эта папка не должна иметь __init__.py
файл в нем.Теперь, как отличить папки, в которых distutils должен создавать файлы, от папок, в которых он не должен создаваться?