我正在运行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 ipython
或easy_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 pyzmq
或easy_install pyzmq
来解决,一旦完成,IdleX应该运行而不会向您抛出错误。