Pergunta

Se todos os meus __init__.py os arquivos estão vazios, preciso armazená-los no controle de versão ou existe uma maneira de fazer distutils criar vazio __init__.py arquivos durante a instalação?

Foi útil?

Solução

Existe uma razão para você querer evitar colocando vazio __init__.py arquivos no controle de versão?Se você fizer isso você não conseguirá import seus pacotes do diretório de origem sem primeiro executar o distutils.

Se você realmente quiser, suponho que você possa criar __init__.py em setup.py.Tem que ser antes correndo distutils.setup, então setup ele mesmo é capaz de encontrar seus pacotes:

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(
...
)

mas...o que você ganharia com isso, comparado a ter o vazio __init__.py arquivos lá em primeiro lugar?

Outras dicas

Em Python, __init__.py os arquivos realmente têm um significado!Eles significam que a pasta em que estão é um módulo Python.Como tal, eles têm um papel real no seu código e provavelmente devem ser armazenados no Controle de Versão.

Você poderia imaginar uma pasta em sua árvore de origem que NÃO seja um módulo Python, por exemplo, uma pasta contendo apenas recursos (por exemplo,imagens) e sem código.Essa pasta não precisaria ter um __init__.py arquivo nele.Agora, como você faz a diferença entre as pastas onde os distutils devem criar esses arquivos e as pastas onde não deveriam?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top