2013-10-28 2 views
6

У меня проблемы с замораживанием моей программы. Я сузил его до скудного модуля. Porgramm Я пытаюсь застывания:Использование CX_Freeze со Scipy: scipy.special._ufuncs.py

from scipy import signal 
signal.hann(1000) 

Моя установка скрипта:

import sys 
from cx_Freeze import setup, Executable 

build_exe_options = {} 

base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup( name = "Some name", 
     version = "1.0", 
     author="My name", 
     description = "My GUI application!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("Script_Name.py", base=base)]) 
            # ^CHANGE THIS NAME!!! 

Вот picture of the error message. Я также попытался в том числе scipy.signal в файле настройки, как

build_exe_options = {"includes":"scipy.signal"} 

, но он не сделал ничего хорошего. Пожалуйста, помогите мне.

+1

В [этот вопрос] (http://stackoverflow.com/questions/19594567/importerror-when-using-cx-freeze-with-scipy), выяснилось, что переименование библиотеки в каталоге сборки исправлено. У вас есть файл под названием 'scipy.special._ufuncs.pyd' (или' .dll') в каталоге сборки? Можете ли вы попробовать переименовать его только в '_ufuncs.pyd' (или' .dll')? –

+0

Я исправил его, скопировав libmmd.dll и libifcoremd.dll из numpy \ core – Kknd

ответ

8

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

1 Каталог сборки содержит файл с именем _ufunc.pyd (вместо scipy.special._ufuncs.pyd, как упоминалось выше). Вы можете достичь этого путем указания build_exe_options:

build_exe_options = { 'packages': ['scipy'], 
        "include_files": [('path2python\\Lib\\site-packages\\scipy\\special\\_ufuncs.pyd','_ufuncs.pyd')]} 

2 Убедившись, что все библиотеки DLL, используемые ufunc.pyd также в каталоге сборки. В моем случае libifcoremd.dll adn libmmd.dll терпел неудачу. Вы можете проверить это с помощью dependencywalker

Я надеюсь, что это поможет вам.

Смежные вопросы