J'essaie de créer un exécutable à partir de mon script python. Mon script fonctionne très bien, mais après le gel, en commençant le .exe me donne l'erreur suivante:cx_freeze et scipy: "ImportError: impossible d'importer le nom vode"
http://www.bild.me/bild.php?file=4663406scipyerror.png
J'utilise Python 3.2.3, Scipy 0.12.0b1, Numpy 1.7.0 et Matplotlib 1.2. 0 (tous les 32 bits).
Des idées/conseils sur la façon de résoudre ce problème? Je suppose que je dois inclure quelque chose manuellement dans mon script de congélation, mais je suis à court de suppositions :-(
Je l'ai enfin à travailler, mais je suis très satisfait de ma solution:
1) copier _odepack.pyd
et odepack.py
de l'emballage SciPy à mon dossier de programme
2) en odepack.py
changement from . import _odepack
-import _odepack
(autrement ValueError: Attempted relative import in non-package
est élevée)
3) dans mon principal changement from scipy.integrate import odeint
à from odepack import odeint
Maintenant, il fonctionne comme prévu et après l'utilisation cx_freeze il fonctionne toujours.
encore obtenu aucune idée pourquoi cela ne fonctionnerait pas avant :-(
Merci ThomasK pour me pousser dans la bonne direction bien :-)
Quelle est la ligne 25 de votre script? Dans quelle forme se trouve le module vode, et pouvez-vous le trouver n'importe où dans le répertoire de construction? Utilisez-vous définitivement la dernière version de cx_Freeze? –
@ThomasK La ligne 25 est l'importation 'de scipy.integrate import odeint'. Dans le répertoire de construction, il y a scipy.integrate._odepack.pyd, qui est copié depuis le dossier scipy/integrate. J'utilise cx_freeze 4.3.1, qui semble être la version la plus récente. – Peter
Mais il n'y a pas de fichier 'scipy.integrate.vode.pyd'? Y a-t-il un fichier 'vode.pyd' sur votre système? Si c'est le cas, essayez de le copier à côté de l'exe. –