2015-01-12 79 views
1

我有一個使用Tkinter,matplotlib,numpy的python程序。 它通過py2exe在我的Windows 8主機系統上成功完成並運行。 我有一個基於Windows 7的系統,這個程序(在Windows 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,解決方案似乎是去除捆綁的DLL​​(py2exe設置選項,更多信息請參見aws-cli):

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

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

+1

重要提示:請記住刪除(或重命名)py2exe輸出目標文件夾中的crypt32.dll文件。 – SilentSteel

1

我也有過這樣的錯誤,具體的輸出:

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

這發生在致電os.urandom。 這是在一個子進程中。

對我來說這個錯誤是我打電話_subprocess.CreateProcessenv_mapper = {'foo': 'bar'}。修復:

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

請注意,有一個相關的問題here。 還有一些關於this GitHub issue的討論。 和this related Python bug。 所有這些似乎都與凍結的Python應用程序中的​​或py2app相關。