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.

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:

  1. Creé el archivo de Python main.py:
from humps import camelize

in_ = input("String: ")
print(camelize(in_))
  1. En el mismo directorio crea el venv y compila: pipenv --python 3 && pipenv install pyhumps && pipenv run pyinstaller --hidden-import pyhumps main.py
  2. Al ejecutar .\dist\main\main.exe se obtiene ModuleNotFoundError: No module named 'humps'.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error ModuleNotFoundError: No module named 'humps' aparece porque pyinstaller no puede encontrar el módulo humps.

    Para solucionar esto, necesitamos agregar el módulo humps como una importación oculta al comando de pyinstaller. En el comando de pyinstaller proporcionado pipenv run pyinstaller --paths external --hidden-import pyhumps --clean src/main.py, el módulo pyhumps se agrega como una importación oculta. Sin embargo, esto no parece funcionar según el mensaje de error ERROR: 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ódulo pyhumps usando la opción --paths como se muestra a continuación:

    pipenv run pyinstaller --paths "$(pipenv --venv)/Lib/site-packages/" --hidden-import pyhumps src/main.py
    

    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ódulo pyhumps en el directorio de site-packages del entorno virtual.

    Luego, podemos ejecutar el ejecutable compilado y debería funcionar sin generar el error ModuleNotFoundError.

Comments are closed.