2013-04-26 1 views
1

Я пытаюсь создать исполняемый файл из моего сценария 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 для толкания меня в правильном направлении, хотя :-)

+0

что такое линия 25 вашего скрипта? Какая форма является модулем vode, и можете ли вы найти ее в любом месте каталога сборки? Вы определенно используете последнюю версию cx_Freeze? –

+0

@ThomasK Строка 25 - это импорт 'from scipy.integrate import odeint'. В каталоге сборки находится scipy.integrate._odepack.pyd, который скопирован из папки scipy/integrate. Я использую cx_freeze 4.3.1, который, кажется, является самой новой версией. – Peter

+0

У вас нет файла 'scipy.integrate.vode.pyd'? Есть ли в вашей системе файл 'vode.pyd'? Если есть, попробуйте скопировать его рядом с exe. –

ответ

2

я, наконец, получил вокруг этого Водэ-проблему, указав «scipy.integrate .vode "в качестве include в cx setup-файле. Это привело к тому, что файл «scipy.integrate.vode.pyd» попал в папку сборки. Я использую SciPy 0.11, Python 3.2.3 и последнюю версию cx для Windows.

Но добавление такого файла «scipy.integrate.vode» вручную в папку сборки также не устранит проблему для меня, даже если такие исправления с исправлением вручную были необходимы для многих других .pyd-файлов. Cx не смог найти либо (и при этом выше setup.py включает-решение не будет работать, а) ...

Спасибо за ваш обмен дистресса и мудрости, не удалось бы заморозить свою программу otherwize ...