Pregunta

Si todo mi __init__.py Los archivos están vacíos, ¿tengo que almacenarlos en el control de versiones o hay alguna manera de hacerlo? distutils crear vacío __init__.py archivos durante la instalación?

¿Fue útil?

Solución

¿Hay alguna razón por la que quieras evitar poniendo vacio __init__.py archivos en control de versiones?Si haces esto no podrás import sus paquetes desde el directorio fuente sin ejecutar primero distutils.

Si realmente quieres, supongo que puedes crear __init__.py en setup.py.Tiene que ser antes correr distutils.setup, entonces setup sí mismo es capaz de encontrar sus paquetes:

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

pero...¿Qué ganarías con esto, en comparación con tener el vacío? __init__.py archivos allí en primer lugar?

Otros consejos

En pitón, __init__.py ¡Los archivos realmente tienen un significado!Quieren decir que la carpeta en la que se encuentran es un módulo de Python.Como tales, tienen un papel real en su código y probablemente deberían almacenarse en Control de versiones.

Bien podría imaginar una carpeta en su árbol de fuentes que NO sea un módulo de Python, por ejemplo, una carpeta que contenga solo recursos (p. ej.imágenes) y sin código.Esa carpeta no necesitaría tener un __init__.py archivo en él.Ahora, ¿cómo se hace la diferencia entre las carpetas donde distutils debería crear esos archivos y las carpetas donde no debería?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top