2015-01-12 2 views
1

У меня есть программа python, которая использовала Tkinter, matplotlib, numpy. Он был успешно создан на моей операционной системе Windows 8 py2exe и работает также. У меня есть одна система, основанная на Windows 7, где также работает эта программа (построенная на окнах 8). Но когда я пытаюсь запустить эту программу на Windows XP SP3, я получаю сообщение об ошибке в лог-файл с содержанием:python exe сбой при запуске на windows xp

Traceback (most recent call last): 
File "DrawPlots.py", line 6, in <module> 
File "graph_ani2.pyc", line 4, in <module> 
File "numpy\__init__.pyc", line 170, in <module> 
File "numpy\add_newdocs.pyc", line 13, in <module> 
File "numpy\lib\__init__.pyc", line 8, in <module> 
File "numpy\lib\type_check.pyc", line 11, in <module> 
File "numpy\core\__init__.pyc", line 46, in <module> 
File "numpy\testing\__init__.pyc", line 13, in <module> 
File "numpy\testing\utils.pyc", line 15, in <module> 
File "tempfile.pyc", line 35, in <module> 
File "random.pyc", line 885, in <module> 
File "random.pyc", line 97, in __init__ 
File "random.pyc", line 113, in seed 
    WindowsError: [Error -2146893795] 

Как я могу предложить - это проблема с NumPy? Если да, то как я могу его решить?

ответ

3

Я сталкивался с подобной проблемой, PyFactura issue #3, решение, кажется, удаление crypt32.dll из сгруппированных библиотек DLL (параметры настройки py2exe, для получения дополнительной информации см aws-cli):

# basic options for py2exe 
opts = { 
    'py2exe': { 
     'dll_excludes': ['crypt32.dll'], 
     } 
    } 

Вам может понадобиться, чтобы исключить другие конкретные Окна 8,1 DLL тоже (API-MS-Win-Core-*.dll)

+1

Важно: Не забудьте удалить (или переименовать) файл crypt32.dll в папке назначения вывода py2exe. – SilentSteel

1

Я также имел эту ошибку, конкретно этот вывод:

WindowsError: [Error -2146893795] Provider DLL failed to initialize correctly 

Это произошло по телефону os.urandom. Это было в подпроцессе.

Ошибка для меня заключалась в том, что я позвонил _subprocess.CreateProcess с env_mapper = {'foo': 'bar'}. Фиксация:

env_mapper = os.environ.copy() 
env_mapper.update({'foo': 'bar'}) 

Обратите внимание, что есть связанный с этим вопрос here. И некоторое обсуждение на this GitHub issue. И this related Python bug. Все они, похоже, связаны с crypt32.dll в замороженном приложении Python или через py2app.

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