¿Pueden los distutils crear archivos __init__.py vacíos?
-
09-06-2019 - |
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?
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?