cx_Freeze et seaborn – ImportError: aucun module nommé ‘scipy.spatial.ckdtree’

Problème

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' 

Information additionnelle

Installer

  • Windows 7 Enterprise 64 bits
  • WinPython-64bit-3.5.2.3Qt5 (Python 3.5.2 64 bits)
  • cx_Freeze 5.0
  • 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 ”

setup.py:

 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\ .