在Windows XP上启动时,python exe文件崩溃

时间:2015-01-12 15:03:16

标签: python windows numpy py2exe

我有一个使用Tkinter,matplotlib,numpy的python程序。 它是通过py2exe在我的Windows 8主机系统上成功构建并运行的。 我有一个基于Windows 7的系统,这个程序(在Windows 8上构建)也可以工作。 但是当我试图在Windows XP sp3上启动这个程序时,我在日志文件中得到错误,内容为:

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有问题吗?如果是,那我该如何解决呢?

2 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,PyFactura issue #3,解决方案似乎是从捆绑的DLL中删除crypt32.dll(py2exe设置选项,有关详细信息,请参阅aws-cli):

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

您可能还需要排除其他特定的Windows 8.1 DLL(API-MS-Win-Core-*.dll

答案 1 :(得分:2)

我也有这个错误,特别是这个输出:

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。 所有这些似乎都与冻结的Python应用程序中的crypt32.dll相关,或者通过py2app。