马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ~风介~ 于 2015-10-20 11:30 编辑
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之类的文件名都有,这些库文件名都极易与我们起名的规则类似。。。
|