2012-03-01 69 views
1

我有一個相當奇怪的問題。在IDLE中工作的Python腳本,但從CMD或Eclipse運行時無法工作

當我從IDLE或Eclipse的調試模式運行python模塊(它導入其他.py和.pyd文件)時,一切正常,最終結果是正確的。但是當我嘗試在Eclipse或CMD的運行模式下運行相同的模塊時,出現錯誤窗口,'python.exe has stopped working'消息。

我設法跟蹤到錯誤的結論,即python停止工作時,從.pyd文件中調用函數(導入工作正常)。從那裏開始,我不知道導致問題的原因。 .pyd輸入參數在所有情況下都是相同的。然而,當python模塊從cmd運行時,python崩潰。

我正在運行64位Windows7,64位Python 2.6.6和所有python二進制文件.pyc都在同一臺計算機上獲得。計算機上未安裝其他python版本。

我將不勝感激任何意見,如何能夠從cmd運行的代碼沒有python.exe崩潰。

+0

pyd是一個c_extension模塊。你確定你兩次都使用同一位口譯員嗎? 一個快速告訴的方​​法是: import sys print sys.executable – jaime 2012-03-01 18:52:30

+0

導致崩潰的函數有什麼作用?另外,請驗證您正在運行的Python解釋器可執行文件。從Eclipse,轉到'窗口>首選項> PyDev>解釋器 - Python'並檢查插入器的位置。確保這是你從命令提示符運行的那個。我知道你說過你只安裝了一個,但也許其他一些程序安裝了一個你不知道的Python,並將其放在路徑中。 – 2012-03-01 18:52:48

+0

謝謝你的回覆。解釋的IDLE使用的是pythonw.exe,CMD中的解釋器是python.exe。兩個可執行文件都在同一個默認文件夾中。我怎樣才能改變CMD使用的python解釋器? – user1243401 2012-03-01 21:44:02

回答

0

我有一個類似的問題...

此功能:

pyd_function(num.asarray(arr).astype('float64')) 

是造成問題,當我跑了它在Eclipse中,而不是當我調試它在Eclipse或IDLE跑了;然後我改變了電話:

a=num.asarray(arr).astype('float64') 
pyd_function(a) 

它開始工作。我不明白爲什麼第一個電話會造成問題。

我希望這可以幫助你。

+0

謝謝,jankos,這解決了我的問題。當我調用pyd_function作爲輸入表達式而不是預定義變量時。我的腳本現在從CMD和Eclipse runmode運行。有沒有人有任何想法,當腳本以不同的方式運行時爲什麼會出現這個問題? – user1243401 2012-03-02 07:50:03

相關問題