Я пытаюсь создать исполняемый файл из моего сценария python. Мой сценарий работает нормально, но после замораживания ее, начиная .exe дает мне следующую ошибку:cx_freeze и scipy: «ImportError: невозможно импортировать имя vode»
http://www.bild.me/bild.php?file=4663406scipyerror.png
Я использую Python 3.2.3, SciPy 0.12.0b1, Numpy 1.7.0 и Matplotlib 1,2. 0 (все 32 бит).
Любые идеи/подсказки о том, как это решить? Я думаю, я должен включать в себя что-то вручную в моем сценарии замораживания, но я бегу из догадок :-(
Я получил его, наконец, работать, но я очень недоволен моим решением:
1) скопировать _odepack.pyd
и odepack.py
из пакета SciPy в моей программе папку
2) в odepack.py
изменения from . import _odepack
к import _odepack
(иначе ValueError: Attempted relative import in non-package
поднята)
3) в моем главном изменении from scipy.integrate import odeint
в from odepack import odeint
Теперь он работает так, как ожидалось, и после использования cx_freeze он все еще работает.
Еще не получил ни малейшего представления, почему это не будет работать, прежде чем :-(
Благодаря ThomasK для толкания меня в правильном направлении, хотя :-)
что такое линия 25 вашего скрипта? Какая форма является модулем vode, и можете ли вы найти ее в любом месте каталога сборки? Вы определенно используете последнюю версию cx_Freeze? –
@ThomasK Строка 25 - это импорт 'from scipy.integrate import odeint'. В каталоге сборки находится scipy.integrate._odepack.pyd, который скопирован из папки scipy/integrate. Я использую cx_freeze 4.3.1, который, кажется, является самой новой версией. – Peter
У вас нет файла 'scipy.integrate.vode.pyd'? Есть ли в вашей системе файл 'vode.pyd'? Если есть, попробуйте скопировать его рядом с exe. –