IDLE子进程启动错误

5 投票
6 回答
41692 浏览
提问于 2025-04-18 10:29

我在一个叫 code.py 的文件里写了代码。我用 IDLE 来编辑这个文件。当我点击 运行>运行模块 时,出现了一个错误:

“IDLE 的子进程没有连接。可能是 IDLE 无法启动子进程,或者是个人防火墙软件阻止了连接。”

我使用的是 Windows 7 Ultimate 64位系统,但安装的是 32位的 Python 2.7。

我在这个网站和其他地方寻找解决方案,但大家似乎都建议删除一个叫 tkinter.py 的东西(我对这个完全不懂),或者关闭我的防火墙(我没有启用任何防火墙,除了 Microsoft Security Essentials,但那不是防火墙)。

#Globals
#-------------------

x_pad = 476
y_pad = 444

import ImageGrab
import os
import time
import win32api, win32con

def screenGrab():
    box = (x_pad+1,y_pad+1,x_pad+641,y_pad+480)
    im = ImageGrab.grab(box)
    im.save(os.getcwd() + '\\full_snap__' + str(int(time.time())) +
'.png', 'PNG')

def main():
    pass

if __name__ == '__main__':
    main()

def leftClick():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(.1)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
    print 'Click.'          #completely optional. But nice for debugging purposes.

def leftDown():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(.1)
    print 'left Down'

def leftUp():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
    time.sleep(.1)
    print 'left release'

def mousePos(cord):
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])

def get_cords():
    x,y = win32api.GetCursorPos()
    x = x - x_pad
    y = y - y_pad
    print x,y

6 个回答

0

我创建了一个Python文件,名字叫做"socket.py",结果在启动Python IDLE时出现了一个错误,提示'启动失败'。问题在于,如果我们把Python的保留关键字或者模块名用作我们的文件名,就会和内置模块发生冲突。解决办法是:去到路径C:\Users\sony\AppData\Local\Programs\Python\Python38,也就是你保存Python文件的地方,把这个文件重命名一下。然后再启动IDLE。

0

我也遇到了类似的问题。我的文件叫 code.py,一直运行得很好,直到我安装了 Canopy 和 numpy。

我尝试重新安装 Python,但最后解决我问题的办法竟然是简单地重命名文件。我把文件改成了 myCode.py,结果一切都正常了。真是个奇怪的问题……

1

我也遇到过同样的问题。解决这个问题的方法是,把我在"C:\Python33"文件夹里创建的所有.py文件,移动到一个我叫“Examples”的子文件夹里。看起来是我其中一个文件导致了这个问题。

2

又一个解决办法!!!希望能帮到某个人。

我遇到了同样的问题,发现了一些有趣的事情。我不小心把一个文件(在我工作的桌面文件夹里)命名为“tkinter”(如果你把文件重命名为任何保留的关键词,可能也会导致同样的问题)。每次我运行这个文件或者尝试运行它时,都会创建一个pycache文件夹,并且你提到的错误就出现了。删除这个错误命名的Python文件后,问题就解决了。

所以——检查一下你正在使用的文件夹里,或者根文件夹里,是否有任何文件是用保留字命名的。把它们删除掉。希望这样能解决问题!

5

问题在于,你创建的“tkinter.py”文件阻碍了“python.exe”的正常运行。也就是说,你写了一个使用Tk()的程序,并把它命名为tkinter.py,保存到了Python的根文件夹里。为了避免这种情况,记得不要直接在Python的根文件夹里保存任何程序文件。

撰写回答