es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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
Tags:  ,

Answer

  1. Avatar for 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 de MyPkg para ReqPkg. De esta manera, cualquier cambio realizado en ReqPkg no afectará a la rama principal de MyPkg.

    Para hacer de ReqPkg un subproyecto en la estructura mostrada anteriormente, puedes incluir ReqPkg como una dependencia en el archivo setup.py de MyPkg. De esta manera, cuando alguien instale MyPkg, ReqPkg también se instalará automáticamente.

    Para hacer esto, incluye la siguiente información en la sección install_requires de tu archivo setup.py:

    install_requires=[
        'ReqPkg==x.y.z'
    ]
    

    Asegúrate de reemplazar x.y.z con la versión adecuada de ReqPkg que deseas incluir.

    Además, puedes incluir un archivo requirements.txt en la raíz de tu repositorio de MyPkg que especifique la versión específica de ReqPkg que MyPkg 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.

Comments are closed.