我有一个使用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有问题吗?如果是,那我该如何解决呢?
答案 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。