Pour une raison quelconque, lors de l’importation du package seaborn
, et pour créer un exécutable (.exe), vous recevrez ImportError suivant. Comment résoudre ce problème?
Traceback (most recent call last): File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\cx_Fr eeze\initscripts\__startup__.py", line 12, in __import__(name + "__init__") File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\cx_Fr eeze\initscripts\Console.py", line 21, in scriptModule = __import__(moduleName) File "GUI.py", line 22, in import seaborn as sns File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\seabo rn\__init__.py", line 9, in from .linearmodels import * File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\seabo rn\linearmodels.py", line 8, in from scipy.spatial import distance File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\scipy \spatial\__init__.py", line 93, in from .ckdtree import * ImportError: No module named 'scipy.spatial.ckdtree'
scipy 0.18.1
finder.IncludePackage("scipy.lib")
le finder.IncludePackage("scipy.lib")
dans le cx_Freeze/hooks.py
à finder.IncludePackage("scipy._lib")
comme indiqué dans la réponse à la question SO ” Cx_freeze ImportError aucun module nommé scipy ”
import os import sys from cx_Freeze import setup, Executable os.environ['TCL_LIBRARY'] = r"C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\tcl\tcl8.6" os.environ['TK_LIBRARY'] = r"C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\tcl\tk8.6" base = None options = { 'build_exe': { 'excludes': ['gtk', 'PyQt4', 'Tkinter'], 'packages': ['scipy'], 'includes': ['scipy.spatial.ckdtree'], } } executables = [ Executable('GUI.py', base=base) ] setup(name='GUI', version='0.1', description='GUI test', executables=executables, options=options )
Essayez de renommer cKDTree.cp35-win_amd64.pyd
en ckdtree.cp35-win_amd64.pyd
. Cela fonctionne pour mon cas.
Le fichier doit se trouver sous votre chemin de génération, tel que build\exe.win-amd64-3.5\scipy\spatial\
.