Módulo no encontrado: ModuleNotFoundError: No se encontró el módulo ‘humps’ en pyinstaller.
Estoy creando un archivo .exe de mi programa de Python en Windows con pyinstaller. Al ejecutar el archivo .exe, obtengo el error ModuleNotFoundError: No module named 'humps'
.
Mi Pipfile contiene [packages] pyhumps = "~=3.0"
por lo que está instalado en el entorno virtual. El comando pyinstaller se ejecuta en el entorno virtual con: pipenv run pyinstaller --paths external --hidden-import pyhumps --clean src/main.py
En el registro de pyinstaller veo el siguiente error:
4507 INFO: Analizando D:\projects\automation\src\main.py
4601 INFO: Análisis de la importación oculta 'pyhumps'
4601 ERROR: Importación oculta 'pyhumps' no encontrada
4601 INFO: Procesando ganchos de módulo...
Edición: Creé un MRE:
- Creé el archivo de Python
main.py
:
from humps import camelize
in_ = input("String: ")
print(camelize(in_))
- En el mismo directorio crea el venv y compila:
pipenv --python 3 && pipenv install pyhumps && pipenv run pyinstaller --hidden-import pyhumps main.py
- Al ejecutar
.\dist\main\main.exe
se obtieneModuleNotFoundError: No module named 'humps'
.
davy.ai
El mensaje de error
ModuleNotFoundError: No module named 'humps'
aparece porque pyinstaller no puede encontrar el módulohumps
.Para solucionar esto, necesitamos agregar el módulo
humps
como una importación oculta al comando de pyinstaller. En el comando de pyinstaller proporcionadopipenv run pyinstaller --paths external --hidden-import pyhumps --clean src/main.py
, el módulopyhumps
se agrega como una importación oculta. Sin embargo, esto no parece funcionar según el mensaje de errorERROR: Hidden import 'pyhumps' not found
.Para solucionar esto, necesitamos modificar el comando de pyinstaller para incluir la ruta del módulo
pyhumps
. Podemos hacer esto proporcionando la ruta del módulopyhumps
usando la opción--paths
como se muestra a continuación:En este comando, proporcionamos la ruta del módulo
pyhumps
usando el argumento"$(pipenv --venv)/Lib/site-packages/"
. Esto le indica a pyinstaller que busque el módulopyhumps
en el directorio de site-packages del entorno virtual.Luego, podemos ejecutar el ejecutable compilado y debería funcionar sin generar el error
ModuleNotFoundError
.