IDLE子进程启动错误
我在一个叫 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 个回答
我创建了一个Python文件,名字叫做"socket.py",结果在启动Python IDLE时出现了一个错误,提示'启动失败'。问题在于,如果我们把Python的保留关键字或者模块名用作我们的文件名,就会和内置模块发生冲突。解决办法是:去到路径C:\Users\sony\AppData\Local\Programs\Python\Python38,也就是你保存Python文件的地方,把这个文件重命名一下。然后再启动IDLE。
我也遇到了类似的问题。我的文件叫 code.py,一直运行得很好,直到我安装了 Canopy 和 numpy。
我尝试重新安装 Python,但最后解决我问题的办法竟然是简单地重命名文件。我把文件改成了 myCode.py,结果一切都正常了。真是个奇怪的问题……
我也遇到过同样的问题。解决这个问题的方法是,把我在"C:\Python33"文件夹里创建的所有.py文件,移动到一个我叫“Examples”的子文件夹里。看起来是我其中一个文件导致了这个问题。
又一个解决办法!!!希望能帮到某个人。
我遇到了同样的问题,发现了一些有趣的事情。我不小心把一个文件(在我工作的桌面文件夹里)命名为“tkinter”(如果你把文件重命名为任何保留的关键词,可能也会导致同样的问题)。每次我运行这个文件或者尝试运行它时,都会创建一个pycache文件夹,并且你提到的错误就出现了。删除这个错误命名的Python文件后,问题就解决了。
所以——检查一下你正在使用的文件夹里,或者根文件夹里,是否有任何文件是用保留字命名的。把它们删除掉。希望这样能解决问题!
问题在于,你创建的“tkinter.py”文件阻碍了“python.exe”的正常运行。也就是说,你写了一个使用Tk()的程序,并把它命名为tkinter.py,保存到了Python的根文件夹里。为了避免这种情况,记得不要直接在Python的根文件夹里保存任何程序文件。