Python IDLE 運行錯誤:IDLE's subprocess didn't make connection. --已解決(原創)!


Python IDLE 錯誤描述:

Subprocess Startup Error
IDLE's subprocess didn't make connection. Either IDLE can't start a subprocess or personal firewall software is blocking the connection.
------------------------------

錯誤截圖:

                                 圖1

 運行環境:XP sp3 、 Python 2.7.5

-----------------------------

錯誤原因及解決方案:

1、原因之一:可能如提示那樣,是由於瘟都死(windows)防火牆給攔截,所以可以試試關閉windows防火牆試試錯誤能否重現。

2、原因之二:這個原因可能更常見。

現在重新敘述一遍該Error。

這個錯誤現象是用IDLE打開xxx.py文件后,點擊運行(或按F5),IDLE崩潰,並彈出圖1.

但是xxx.py可以在命令行下解釋並正常運行(即在Winkey+R,輸入cmd,然后python xxx.py。前提是python已加入環境變量)。

這個現象說明xxx.py語法非常正確,所以導致IDLE崩潰的原因只能是IDLE本身有問題。

於是作為一個不稱職的程序員,一個常見的錯覺就是“這不可能,一定是編譯器出了問題!!!”...懷疑Python安裝有問題或者是莫名其妙的Python某個配置文件被改了...接着卸了重裝Python...還是不行...換個電腦試試還是不行!!!.....一句“f**k”出口,最后只能將問題定性為“一定死我人品不好”....對於一些毅力超強的人來說使出了殺手鐧“TMD,LZ要重裝系統!”,結果重裝完系統還是崩潰。。。呵呵

................................................

以上為活躍氣氛。

................................................

經過仔細分析,發現這么個情況:

1、xxx.py的同級目錄下有個code.py和code.pyc文件(注:code.py是我自己瞎寫的一個文件,但是code.pyc不知道何時生成的)。

2、xxx.py的同級目錄下所有.py文件IDLE都不能正常運行。

3、如果將xxx.py復制到另一個目錄下,xxx.py用IDLE可以正常運行!

綜上,問題就在於這個code.py和code.pyc上。

我到Python褲中一查,果然code.py這個文件名竟然是系統文件名!

然后調查了一下D:\Python27\Lib\code.py文件的功能,發現是這樣的:

在python的help文檔中這樣寫道:Utilities needed to emulate Python's interactive interpreter.

也就是說這個code.py功能是模擬Python交互式解釋器。

並且,如果IDLE打開xxx.py,如果同等目錄下還有一個”code.py"文件名的話(它檢查code.py內容是什么),會先編譯(解釋)code.py生成code.pyc,然后再執行解釋xxx.py.

其結果就相當於打開多個終端,而且一個終端的打開代碼還是錯誤的(此處純屬YY,如有不妥之處請聯系我)。

於是就出現了什么子進程無法連接錯誤之類的Error。

.............................................

解決方案:

不要自己給文件名起"code.py"這個名字!或者是檢查要運行的源文件目錄下有沒有code.py、code.pyc這兩個文件中的一個,刪除即可。

溫馨提示:

自己定義的文件名最好不要與系統庫文件名相同,有可能會出現一些未知錯誤!

我們可以進入Python lib目錄看看,發現Python庫文件起的名字真不怎么地,什么abc.py,test_xxx.py之類的文件名都有,這些庫文件名都極易與我們起名的規則類似。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM