web-dev-qa-db-fra.com

Dans PyInstaller, pourquoi ne chargera-t-il pas NumPy.Random.Common en tant que module?

J'essaie de compiler un programme .py dans un fichier Windows .exe en utilisant PyInstaller. Chaque fois que j'essaie d'exécuter le .exe, le terminal s'ouvre, puis se ferme rapidement avec l'erreur:

ImportError: Unable to import required dependencies: numpy: No module named 'numpy.random.common'

Je n'importe pas explicitement numpy; il est importé par des pandas.

J'ai également cette longue liste d'avertissements sur les modules qui n'ont pas pu être chargés dans le journal des avertissements pour pyinstaller.

J'ai essayé d'ajouter hiddenimports=['numpy.random.common'] dans mon fichier .spec, j'ai essayé d'exécuter `pyinstaller [file] .py -F --hidden-import =" numpy.random.common ". J'ai lu les autres publications de stackoverflow sur pyinstaller et les importations cachées, mais rien ne semble résoudre cette erreur.

J'utilise un environnement virtuel, donc je ne sais pas si cela joue un rôle.

Voici mon fichier .spec

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['getNewPropertiesLabels.py'],
             pathex=['C:\\Users\\[user name]\\OneDrive\\Documents\\Consulting\\[file name]'],
             binaries=[],
             datas=[],
             hiddenimports=['numpy.random.common'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='Name',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True')

Mon fichier d'avertissement fait que le message est trop long, mais numpy.random.common n'est pas réellement répertorié comme module manquant. Numpy.random n'est pas non plus.

Je m'attends à ce que cela fonctionne correctement sans aucun problème.

5
Tracey

L'ajout de "numpy.random.common", "numpy.random.bounded_integers" et "numpy.random.entropy" à mes importations cachées a fonctionné pour moi.

0
Ctrd00

J'ai eu du mal avec le même problème hier. Au début, j'ai eu un problème avec le module ssl puis avec numpy.random, ainsi qu'une liste d'autres modules mal chargés ...

Veuillez regarder ma question ici et j'ai énuméré un certain nombre de choses que j'ai faites pour essayer de résoudre ce problème dans la réponse suivante.

Faites-moi savoir si le problème est résolu par ces mesures, car je n'ai pas pu identifier l'étape exacte qui l'a résolu. (Je crois que c'est une combinaison de tous).

0
Tim Mironov

J'ai le même problème que j'essaie de résoudre depuis des heures! cette astuce n'a pas fonctionné pour moi bien que je recommande de l'essayer, en rétrogradant numpy et pandas résolu le "problème d'importation numpy" provoqué par pandas disparaître .. uniquement parce que maintenant il ne peut pas trouver de pandas! (bien que j'aie spécifié pandas sous hiddenimports)

0
L.S