我正在运行Python-2.7.8.AMD64,并在一位朋友的建议下安装了idlex。

当我使用快捷方式启动idlex时,Dos框将弹出,并显示一个Traceback,如所附的代码框中所示。

idlex.py - Shortcut

Traceback (most recent call last):
  File "C:\downloads\python\idlex-1.12\idlexlib\extensionManager.py", line 131,
in load_extension
    mod = importlib.import_module('.' + fullname, package=__package__)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\downloads\python\idlex-1.12\idlexlib\extensions\IPyIDLE.py", line 253
, in <module>
    class IdleXSubSocketChannel(SimpleChannel, channels.IOPubChannel):
NameError: name 'channels' is not defined
could not load IPyIDLE


我不确定这意味着什么。

idlex运行正常,没有明显的错误可以确定。

是否需要在与Python相关的特定位置安装idlex以消除此错误? (即在Lib中的python文件夹中?)

谢谢。

最佳答案

好像您缺少IPython。

您可以执行pip install ipythoneasy_install ipython,如果需要帮助,请参考here

错误是一个NameError,它说它没有定义变量channels的定义,该变量由依赖于“ idlex-1.12 / idlex1.12 / idlexlib / extension / IPyIDLE.py”中的IPython的导入调用:

if HAS_IPYTHON:
# IPython
...
import IPython.kernel.channels as channels
...


发生错误的位置在文件的更下方:

class IdleXSubSocketChannel(SimpleChannel, channels.IOPubChannel):
     channel_name = 'sub'


一旦安装了IPython,该错误就解决了,但是,在此之后,您将遇到另一个错误(如果您有基本安装):

ImportError: IPython.kernel.zmq requires pyzmq >= 2.1.11


可以通过pip install pyzmqeasy_install pyzmq来解决,一旦完成,IdleX应该运行而不会向您抛出错误。

09-06 07:43