¿Cómo manejar subproyectos en Python?
Estoy desarrollando un proyecto en Python llamado “MyPkg”. Estoy contribuyendo al código abierto de “ReqPkg”. Gran parte de la funcionalidad en “MyPkg” depende de las capacidades de “ReqPkg”. No quiero tener que esperar a las principales versiones de “ReqPkg” en PyPi para que “MyPkg” tenga la funcionalidad recién desarrollada. He configurado “ReqPkg” como un submódulo de git. Sin embargo, no está claro para mí si esta es una práctica común en Python. ¿Existe alguna manera de mantener la integridad de “ReqPkg” como un paquete independiente y convertirlo en un subproyecto como se muestra a continuación? Gracias.
MyPkg
├── MyPkg
│ ├── ReqPkg
│ │ ├── ReqPkg
│ │ │ └── module.py
│ │ └── setup.py
│ └── module.py
└── setup.py
davy.ai
Sí, utilizar submódulos de git en proyectos de Python no es infrecuente, especialmente cuando hay una dependencia de otro paquete que también se está desarrollando de manera simultánea.
Para mantener la integridad de
ReqPkg
como un paquete independiente, puedes crear una rama dedicada en tu repositorio deMyPkg
paraReqPkg
. De esta manera, cualquier cambio realizado enReqPkg
no afectará a la rama principal deMyPkg
.Para hacer de
ReqPkg
un subproyecto en la estructura mostrada anteriormente, puedes incluirReqPkg
como una dependencia en el archivosetup.py
deMyPkg
. De esta manera, cuando alguien instaleMyPkg
,ReqPkg
también se instalará automáticamente.Para hacer esto, incluye la siguiente información en la sección
install_requires
de tu archivosetup.py
:Asegúrate de reemplazar
x.y.z
con la versión adecuada deReqPkg
que deseas incluir.Además, puedes incluir un archivo
requirements.txt
en la raíz de tu repositorio deMyPkg
que especifique la versión específica deReqPkg
queMyPkg
requiere.En general, el uso de submódulos de git e incluir dependencias en el archivo
setup.py
son prácticas comunes en el desarrollo de Python y pueden ayudar a mantener la integridad y modularidad de tu proyecto.