python exe 文件在 windows xp 上启动时崩溃

python exe file crashes while launching on windows xp

我有一个 python 程序,它使用了 Tkinter、matplotlib、numpy。 它是由 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 有问题吗?如果是,那我该如何解决?

我遇到了类似的问题,PyFactura issue #3, the solution seems to be removing crypt32.dll from the bundled DLLs (py2exe setup options, for more info see aws-cli):

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

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

我也有这个错误,具体是这个输出:

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

这是在调用 os.urandom 时发生的。 这是在一个子进程中。

我的错误是我用 env_mapper = {'foo': 'bar'} 调用了 _subprocess.CreateProcess。修复:

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

注意有一个相关问题here。 以及关于 this GitHub issue 的一些讨论。 和 this related Python bug。 所有这些似乎都与冻结的 Python 应用程序中的 crypt32.dll 或通过 py2app 相关。