【问题标题】:IDLE subprocess startup errorIDLE子进程启动错误
【发布时间】:2014-08-11 03:41:32
【问题描述】:

我在一个名为code.py 的文件中有以下代码。我正在使用IDLE 来编辑文件。当我单击Run>Run Module 时,我收到错误消息:

"IDLE 的子进程没有建立连接。要么 IDLE 无法启动 个人防火墙软件的子进程阻塞了连接。”

我使用的是 64 位 Windows 7 Ultimate,但我安装了 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

【问题讨论】:

  • IDLE 曾经工作过(与其他 python 文件一起使用)还是你第一次使用它(在那台计算机上)?
  • 只有当我尝试点击运行 > 运行模块时才会出现此错误,如果我双击 python 文件,代码会按预期运行。
  • 问题是关于 IDLE。您是否通过 IDLE Run/Run 模块运行了其他 python 模块?如果没有,您可以尝试卸载并重新安装完整的 Python,因为 IDLE 是核心 Python 发行版的一部分。
  • 不要删除 tkinter.py,因为这将禁用 Idle 和所有其他 tkinter 应用程序。你是如何开始空闲的?如果您从“开始”菜单图标启动它会发生什么?
  • @Musixauce3000 默认情况下,IDLE 在单独的进程中执行用户代码。目前,这两个进程通过套接字进行通信。由于套接字主要用于与 其他 机器(世界上任何地方)上的进程通信,因此某些机器会监视套接字的使用情况,它们有时不会区分机器内和机器间。如果你有防火墙,你可以配置不阻止内部通信。或者在命令行上使用-n 选项启动 IDLE 以在一个进程中运行 IDLE 和用户代码。除了编写 tkinter 程序之外,这大部分都有效。

标签: python python-2.7 python-idle


【解决方案1】:

问题是您创建的“python.exe”被“tkinter.py”阻碍(即,您使用 Tk() 编写了一个程序并将其命名为 tkinter.py 并将其保存在根文件夹中蟒蛇)。就是这样,确保你不要将任何程序文件直接保存在 python 的根文件夹中。

【讨论】:

    【解决方案2】:

    另一个修复!!!希望这会对某人有所帮助。

    我遇到了同样的问题,并注意到一些非常有趣的事情。我不小心将一个文件(在我正在使用的桌面文件夹中)命名为“tkinter”(如果你用任何保留关键字重命名文件,我假设它会导致同样的问题)。每次我运行或尝试运行此文件时,它都会创建一个 pycache 文件夹,并出现您上面提到的错误。删除错误命名的python文件解决了这个问题。

    所以 - 查找以任何保留字命名的任何文件(在您正在使用的文件夹或根文件夹中)。删除它们。希望它会工作!

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我所做的解决了这个问题,就是将我在“C:\Python33”文件夹中创建的每个 .py 文件移动到一个名为“Examples”的子文件夹中。似乎我的一个文件是导致此问题的原因。

      【讨论】:

        【解决方案4】:

        我也遇到了以下问题。我的文件名为 code.py,在我安装 Canopy 和 numpy 之前运行良好。

        我尝试重新安装 python,但为我解决问题的只是重命名文件。我将我的文件称为 myCode.py,一切都开始正常工作。奇怪的问题...

        【讨论】:

          【解决方案5】:

          我创建了一个 python 文件并将其命名为“socket.py”,因此 python IDLE 在启动时显示错误“startup failure” 所以问题是,如果我们使用 python 保留关键字或模块名称作为我们的 python 文件名,它与内置模块冲突。 解决方案是:转到路径 C:\Users\sony\AppData\Local\Programs\Python\Python38 保存您的 python 文件并重命名该文件。 然后启动 IDLE。

          【讨论】:

            【解决方案6】:

            愉快地在python36和windows10下连续使用IDLE,它突然在我正在处理的所有程序上出现这个错误,没有创建新文件。
            我终止了 IDLE 并尝试使用 idle.bat 重新启动它,但这不再有效。 幸运的是,我已经能够使用 Lib\idlelib\idle.pyw 成功地重新启动它。 我最近的所有程序都在那里,它们可以再次运行而不会出现问题。 无需重新安装python。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-10-26
              • 1970-01-01
              • 2015-06-16
              • 2016-12-23
              • 1970-01-01
              • 2015-04-19
              • 2017-10-21
              • 1970-01-01
              相关资源
              最近更新 更多