2013-11-24 2 views
10

Это мой первый пост, так что легко на меня. Моя проблема аналогична, как здесь, но я не мог заставить ее работать, хотя я действительно пробовал: «py2exe with enthought and pandas».Exe, созданный с помощью py2exe, не работает и возвращает файл журнала с ошибками

Установив отдельно обе версии python (x84-64, x32) с библиотеками, я приступил к созданию исполняемого файла скрипта python с использованием py2exe. Мне пришлось скачать отсутствующие файлы dll: msvcp90.dll, libiomp5md.dll, libifcoremd.dll, libmmd.dll.
Файлы Exe Созданы ошибки возврата и создается файл журнала - разные для библиотек x32 и x64 python &.

Для 32 битных питона & библиотек я получил следующие лог-файлы (различные в зависимости от Numpy библиотеку я установил от: http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy)

Для Numpy-1.8.0-win32-SuperPack-python2.7 я получил размноженное следующее информация:

File "gui.py", line 7, in <module> 
File "pyqtgraph\__init__.pyc", line 177, in <module> 
File "pyqtgraph\__init__.pyc", line 167, in importAll 
File "pyqtgraph\__init__.pyc", line 159, in importModules 
Traceback (most recent call last): 
File "gua.py", line 7, in <module> 
File "pyqtgraph\__init__.pyc", line 180, in <module> 
File "pyqtgraph\imageview\__init__.pyc", line 6, in <module> 
File "pyqtgraph\imageview\ImageView.pyc", line 20, in <module> 
File "pyqtgraph\imageview\ImageViewTemplate_pyqt.pyc", line 159, in <module> 
File "pyqtgraph\widgets\PlotWidget.pyc", line 10, in <module> 
File "pyqtgraph\graphicsItems\PlotItem\__init__.pyc", line 1, in <module> 
File "pyqtgraph\graphicsItems\PlotItem\PlotItem.pyc", line 32, in <module> 
File "pyqtgraph\graphicsItems\PlotDataItem.pyc", line 4, in <module> 
File "pyqtgraph\graphicsItems\PlotCurveItem.pyc", line 4, in <module> 
File "scipy\stats\__init__.pyc", line 324, in <module> 
File "scipy\stats\stats.pyc", line 242, in <module> 
File "scipy\special\__init__.pyc", line 531, in <module> 
File "scipy\special\_ufuncs.pyc", line 12, in <module> 
File "scipy\special\_ufuncs.pyc", line 10, in __load 
File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs (scipy\special\_ufuncs.c:19840) 
ImportError: No module named _ufuncs_cxx 

Для NumPy-MKL- 1.8.0.win32-ру 2,7:

Traceback (most recent call last): 
File "gui.py", line 2, in <module> 
File "numpy\__init__.pyc", line 154, in <module> 
File "numpy\add_newdocs.pyc", line 9, in <module> 
File "numpy\lib\__init__.pyc", line 13, in <module> 
File "numpy\lib\polynomial.pyc", line 17, in <module> 
File "numpy\linalg\__init__.pyc", line 48, in <module> 
File "numpy\linalg\linalg.pyc", line 23, in <module> 
File "numpy\linalg\lapack_lite.pyc", line 12, in <module> 
File "numpy\linalg\lapack_lite.pyc", line 10, in __load 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Для Numpy-MKL-1.7.2rc1 .win32-py2.7 Я получил, как указано выше, но умножился.

Для 64 битных питона & библиотек я получил следующее, безотносительно от SciPy и Numpy версии:

File "gui.py", line 7, in <module> 
File "pyqtgraph\__init__.pyc", line 177, in <module> 
File "pyqtgraph\__init__.pyc", line 167, in importAll 
File "pyqtgraph\__init__.pyc", line 159, in importModules 
Traceback (most recent call last): 
File "pyqtgraph\__init__.pyc", line 155, in importModules 
File "pyqtgraph\graphicsItems\PlotDataItem.pyc", line 4, in <module> 
File "pyqtgraph\graphicsItems\PlotCurveItem.pyc", line 4, in <module> 
File "scipy\stats\__init__.pyc", line 324, in <module> 
File "scipy\stats\stats.pyc", line 242, in <module> 
File "scipy\special\__init__.pyc", line 531, in <module> 
File "scipy\special\_ufuncs.pyc", line 12, in <module> 
File "scipy\special\_ufuncs.pyc", line 10, in __load 
File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs (scipy\special\_ufuncs.c:19992) 
ImportError: No module named _ufuncs_cxx 

У меня есть некоторые ufuncs файлы в .. \ сборка \ bdist.win-amd64 \ winexe \ собирать -2.7 \ scipy \ special, но я не уверен, как это работает или должно работать.

Итак, что мне делать, чтобы заставить любой из этих .exe работать? Предпочтительно, тот, который идет с 64-битным питоном, потому что открытие программы путем запуска кода в SciTe с 32-разрядным питоном занимает много времени, и произошла перегрузка памяти.

EDIT:

После удаления import numpy, pyqtgraph, scipy из setup.py я получаю следующий файл_журнал с ошибками:

File "gui.py", line 7, in <module> 
File "pyqtgraph\__init__.pyc", line 177, in <module> 
File "pyqtgraph\__init__.pyc", line 167, in importAll 
File "pyqtgraph\__init__.pyc", line 159, in importModules 
Traceback (most recent call last): 
File "pyqtgraph\__init__.pyc", line 155, in importModules 
File "pyqtgraph\graphicsItems\PlotDataItem.pyc", line 4, in <module> 
File "pyqtgraph\graphicsItems\PlotCurveItem.pyc", line 2, in <module> 
File "scipy\fftpack\__init__.pyc", line 97, in <module> 
File "scipy\fftpack\basic.pyc", line 12, in <module> 
File "scipy\fftpack\_fftpack.pyc", line 12, in <module> 
File "scipy\fftpack\_fftpack.pyc", line 10, in __load 
ImportError: DLL load failed: %1 is not a valid Win32 application. 
+1

Что такое _ufuncs_cxx? – duhaime

+0

Я не уверен, что это такое. Все, что я знаю, это часть скудной библиотеки. – lottee

+0

FWIW, мне всегда было гораздо повезло с [cx_freeze] (http://cx-freeze.readthedocs.org/en/latest), чем py2exe. – aquavitae

ответ

1

из distutils.core настройки импорта

импорта py2exe

setup (console = ['hello.py'])

редактировать: не включают в себя какие-либо другие библиотеки/модули здесь

Далее в CMD:

питон hello.py py2exe

+0

Да, это почти то, что я делаю, но это все еще не работает. 'от distutils.core импорта setup' ' импорт py2exe' 'импорт Numpy, pyqtgraph, scipy' ' настройки (окна = [ 'gui.py']) ' – lottee

+0

Эта программа очень важна, потому что это для моего Интернатура. Пожалуйста, помогите решить проблему. – lottee

+0

Я не думаю, что вы должны импортировать что-нибудь еще в скрипт – leonneo

12

У меня больше успеха с PyInstaller чем Py2exe.В PyInstaller, проблема решается путем явного добавления ссылки:

pyinstaller myscript.py --hidden-import=scipy.special._ufuncs_cxx 

PyInstaller также заботится о Matplotlib запутанной ситуации, и Visual Studio библиотеки DLL.

1

я получил то же самое сообщение об ошибке при создании EXE-файла с помощью py2exe

File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs (scipy\special\_ufuncs.c:22830) 

Она была решена путем добавления scipy.special._ufuncs_cxx к includes опции в setup.py. Вот что у меня есть.

from distutils.core import setup 
import py2exe 
import numpy 

setup(
    console=['hello.py'], 
    options={ 
     'py2exe': { 
      r'includes': [r'scipy.sparse.csgraph._validation', 
          r'scipy.special._ufuncs_cxx'] 
     } 
    } 
) 

Обратите внимание, что он содержит некоторые другие настройки для предотвращения ошибок, связанных с numpy/scipy.

  • импорт NumPy
  • включает scipy.sparse.csgraph._validation на основе this answer
Смежные вопросы