El paquete de Pypi no se está instalando.
Estoy trabajando en publicar una librería de utilidades para Python, principalmente para mi uso personal. Puedes encontrarla en pypi aquí. El repositorio está aquí. Aquí está mi setup.cfg:
[metadata]
name = raddoo
version = 0.0.4
description = "Una colección de funciones de utilidad útiles para Python"
[options]
packages = raddoo
python_version = >=3.6
Estoy construyendo con python -m build
, lo cual me da un archivo tar.gz y whl. Cuando hago pipenv install raddoo
en otra ubicación, parece que no se instala nada en site-packages
:
ls $(pipenv --venv)/lib/python3.9/site-packages
_distutils_hack pip-21.3.1.virtualenv setuptools-58.5.3.virtualenv
_virtualenv.pth pkg_resources wheel
_virtualenv.py raddoo wheel-0.37.0.dist-info
distutils-precedence.pth raddoo-0.0.4.dist-info wheel-0.37.0.virtualenv
pip setuptools
pip-21.3.1.dist-info setuptools-58.5.3.dist-info
Intentar importarlo también falla:
python -c 'import raddoo'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'raddoo'
¿Qué estoy haciendo mal?
davy.ai
Parece que el campo
packages
en tu archivosetup.cfg
no está configurado correctamente. Actualmente, está establecido enraddoo
, lo que significa que solo se incluirá el módulo de nivel superiorraddoo
en el paquete. Sin embargo, mencionaste que tienes una colección de funciones de utilidad, por lo que es probable que estén organizadas en submódulos o subpaquetes.Puedes intentar modificar el campo
packages
para incluir todos los submódulos y subpaquetes bajo el paqueteraddoo
, de esta manera:Esto utiliza el valor
find:
para incluir automáticamente todos los paquetes encontrados en el directorio fuente. También puedes especificar nombres de paquetes específicos o patrones utilizando una sintaxis de lista, como[raddoo, raddoo.utils]
.Después de actualizar
setup.cfg
, deberás reconstruir y reinstalar el paquete usandopython -m build
ypip install <ruta-al-archivo-whl>
. Una vez instalado, puedes verificar que los módulos del paquete estén incluidos ensite-packages
y que puedan importarse correctamente en tu sesión de Python.Esto debería funcionar siempre que el módulo haya sido estructurado correctamente.