Вопрос

Если все мои __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 должен создавать файлы, от папок, в которых он не должен создаваться?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top