没有空闲子进程连接
Posted
技术标签:
【中文标题】没有空闲子进程连接【英文标题】:No IDLE Subprocess connection 【发布时间】:2011-03-17 17:12:12 【问题描述】:我是 python 编程的新手,想尝试在 IDLE 而不是 OSX 命令行中编辑脚本。但是,当我尝试启动它时,它给了我错误“空闲子进程没有建立连接。空闲无法启动子进程或个人防火墙软件阻止了连接。”我没有配置防火墙,请问是什么问题?
【问题讨论】:
【参考方案1】:您可以尝试使用“-n”选项运行 IDLE。来自 IDLE 帮助:
在没有子进程的情况下运行: 如果 IDLE 使用 -n 命令行开关启动,它将在 单个进程,不会创建运行 RPC 的子进程 Python 执行服务器。如果 Python 无法创建,这将很有用 平台上的子进程或 RPC 套接字接口。然而, 在这种模式下,用户代码不与 IDLE 本身隔离。此外,该 选择运行/运行模块 (F5) 时不会重新启动环境。如果 您的代码已被修改,您必须 reload() 受影响的模块和 如果发生更改,请重新导入任何特定项目(例如从 foo import baz) 将生效。由于这些原因,最好运行 IDLE 如果可能的话,使用默认的子进程。【讨论】:
【参考方案2】:您没有说您使用的是哪个版本的 Python 或 OS X,但是,如果您尝试使用由 Python 2.7 的最新 python.org 64 位安装程序安装的 IDLE,您几乎肯定会遇到known issue。如错误报告中所述,在解决 2.7 安装程序的问题之前,最简单的 2.7 解决方法是使用 the '10.3 and up' installer 安装仅 32 位版本的 2.7。
更新:Python 2.7 的 python.org 64 位/32 位安装程序存在此问题。它已在 Python 2.7 的后续版本中得到纠正;在撰写本文时,Python 2.7.2 是最新的。但是,原始问题的根本原因仍然是 Apple 为 Mac OS X 10.6 提供的Tcl/Tk 8.5
版本。要将 IDLE 或 Tkinter 与当前用于 OS X 的 64 位 Python 安装程序一起使用,您需要从 ActiveState 安装更稳定的 Tcl/Tk 8.5
。更新的详细信息由here 维护,它也与当前的安装程序下载页面链接。
【讨论】:
我在 Mac OSX 10.6.4 上使用 2.7。我很确定它是 64 位版本。我使用 64 位进程和我使用 32 位进程之间有很大区别吗?如何降级? 粗略地说,32 位和 64 位 Python 之间的区别主要在于在处理某些类型的问题时性能更好,例如涉及非常大的数据集或非常大的整数的问题。您很可能不会注意到任何差异。要降级,只需从 python.org 加载另一个安装程序并像第一次安装一样安装它。它将覆盖安装的原始文件。如果您已经安装了任何其他 Python 包(通常使用 setup.py 脚本),您需要在之后重新安装它们。以上是关于没有空闲子进程连接的主要内容,如果未能解决你的问题,请参考以下文章