【问题标题】:pydev console already expydev 控制台已经 ex
【发布时间】:2015-03-17 09:51:35
【问题描述】:

尝试在 pydev 中运行交互式 python 控制台时收到以下错误代码

我不知道出了什么问题。当我在谷歌上搜索

控制台已经退出,值为:1

部分错误,没有任何有用的东西出现。

奇怪的是,这件事只发生在我的一个 python 工作区项目中。只有一个。其他的都和其他的一样。

我想在问题中添加一张图片,但它需要我超过 10 个声誉.......

初始化控制台时出错。连接到控制台的意外错误。 无法从 pydevconsole 接收到合适的 Hello 响应。最后一条消息 收到:控制台已经以值退出:1 在等待 回答。

【问题讨论】:

    标签: python pydev


    【解决方案1】:

    pip uninstall traitlets 刚刚为我工作。

    【讨论】:

    • 它也对我有用!但为什么?我们需要特质吗?
    • 我怀疑独立的 IPython 需要它。
    • 工作 - 虽然只是在重新安装 traitlets 之前。但这对我来说直到现在都没有问题。 (版本:Mars.2 Release (4.5.2),Build ID:20160218-0600,Python 3.6.8)
    【解决方案2】:

    似乎(在我的系统上;YMMV)是一个acknowledged bug,其中 pydev 没有更新以匹配从 ipython 版本 4 到版本 5 的 API 更改。

    要么做

    pip uninstall ipython
    pip install ipython==4.2.0
    

    (在this answer 中暗示),或者将以下补丁应用于pydev_ipython_console_011.py。

    163c163
    <                              self.has_readline)
    ---
    >             )
    171d170
    <                              use_readline=self.has_readline,
    183d181
    <                              use_readline=self.has_readline,
    194d191
    <                              use_readline=self.has_readline,
    239,245d235
    < 
    <         # Only configure readline if we truly are using readline.  IPython can
    <         # do tab-completion over the network, in GUIs, etc, where readline
    <         # itself may be absent
    <         if self.has_readline:
    <             self.set_readline_completer()
    < 
    

    卸载 traitlets 允许我在 Eclipse 中打开 pydev 控制台,但在命令行中破坏了 ipython,所以我重新安装了它。但是,由于错误消息提到某些进程正在以退出代码 1 终止,我认为可能有一个值得一看的抑制回溯。所以,我运行了上面提到的命令行

    /usr/bin/python2.7 -u /home/tsbertalan/eclipse/cpp-mars/eclipse/../../../.p2/pool/plugins/org.python.pydev_4.5.4.201601292234/pysrc/pydevconsole.py 34462 35898 34462 35898
    

    (这显然取决于我的具体安装),并得到一个以

    结尾的回溯
    File "/home/tsbertalan/.p2/pool/plugins/org.python.pydev_4.5.4.201601292234/pysrc/_pydev_bundle/pydev_ipython_console_011.py", line 194, in _new_completer_200
        use_readline=self.has_readline,
    AttributeError: 'PyDevTerminalInteractiveShell' object has no attribute 'has_readline'
    

    当我用谷歌搜索最后一行时,我被引导到this answer,这是由于 ipython v5 中的 API 发生了变化。所以,这是 pydev 中的一个错误。然后我检查了他们的问题跟踪器,发现它是already handled,解决方法是删除有问题的旧 API 详细信息(请参阅上面的补丁)。

    不幸的是,patch 方法仅适用于 pydev 4.5.4。当我使用 Eclipse 的“检查更新”功能进行升级时(希望 5.1.3 可用——只有 5.1.2 可用),补丁解决了即时失败,因为交互式控制台使用 ipython 启动,但使用 @987654330 @ 打印文档字符串,而不是打印某种类似字典的对象。所以,我现在使用 pydev 5.1.2 和 ipython 4.2.0。也许一旦我得到 5.1.3,我会尝试更新 ipython。

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 2013-01-27
      • 2012-06-23
      • 2012-05-01
      • 2023-03-30
      相关资源
      最近更新 更多