gpt4 book ai didi

python - 在 PyCharm 中运行程序后显示解释器 (IPython) 时出现问题

转载 作者:IT老高 更新时间:2023-10-28 22:19:30 26 4
gpt4 key购买 nike

我将 PyCharm 专业版 3.5 5.0 配置为

use IPython when possible

在我设置的运行/调试配置中

show interpreter afterwards

我经常使用交互式解释器,我真的很喜欢 IPython,但我不喜欢 PyCharm 中的处理方式:

  • 我的程序中的任何 input() 都返回空字符串。

  • 此外,当发生错误时,我无法再与程序交互。 (当您使用 -i 标志运行 Python 程序时可以)

  • Console中的最后一行和当前行之间有很大的空格

在 IPython 中,代码块中的 ...: 提示符没有缩进 2 个空格,因此未与 In [?]: 提示符对齐。

  • 当发生错误时,我会得到如下信息:
Traceback (most recent call last):
File "C:\Program Files (x86)\PyCharm\helpers\pydev\pydev_run_in_console.py", line 69, in <module>
globals = run_file(file, None, None)
File "C:\Program Files (x86)\PyCharm\helpers\pydev\pydev_run_in_console.py", line 29, in run_file
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files (x86)\PyCharm\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/ca/Python/Bundeswettbewerb Informatik/Aufgabe2/Ameisen.py", line 133, in <module>
function_that_caused_error()

我不需要/不想看到内部的回溯。

  • 当运行一个文件时,需要启动 IPython,这需要几秒钟,即使我以后不打算使用解释。我希望 PyCharm 在程序结束后或开始调试时启动 IPython(您可以通过执行 import IPython; IPython.start_ipython()
  • 在交互式控制台中启动 IPython

还有一些我不喜欢的小事:

  • 当 IPython 启动时,它会在控制台打印大量文本。除了版本号之外,我不想看到任何内容(您通常可以使用 --no-banner 选项执行此操作,但将其添加到解释器选项不起作用)

  • 当您键入内容并按 Up 时,它会用我的历史记录的最后一项替换我所写的内容,而不是用我的历史记录的最后一项以我所拥有的开头的内容替换它打字。普通的 IPython 可以做到这一点。

  • 我希望无需在控制台中按 Ctrl + Space 即可自动完成代码

“问题”按重要性排序。有人知道如何更改其中的一些吗?我可以停止使用可以解决第二个、第三个和第四个问题的 IPython,但其他问题仍然存在。所有这些行为(不包括 IPython 的东西)都在 PyScripter 中很好地实现了。

编辑:

我已经找到了前两个问题和 IPython 横幅问题的解决方案。 PyDev 交互式解释器(由 PyCharm 使用)的源代码位于 Windows 上的 C:\Program Files (x86)\PyCharm\helpers\PyDev 中(当然路径不同)。

所以第一个问题可以通过编辑文件_pydev_imps/_pydev_execfile.py来解决。将第 18 行 (exec(compile(contents+"\n", file, 'exec'), glob, loc)) 包装在 try ... except block 中以下代码作为异常处理程序import traceback; traceback.print_exc()。如果在之后让您与变量交互时出现错误,这将终止您的 Python 程序。

问题2可以通过编辑pydev_run_in_console.py来解决。在文件的开头添加这个导入: from pydev_console_utils import StdIn 并在添加之前的第 61 行之后插入 sys.stdin = StdIn(interpreter, host, client_port)导入。

为了解决横幅问题,您必须下载最新版本的 PyDev 源 here并将文件 pydev_ipython_consolepydev_ipython_console_011 替换为较新的版本。在第一个文件的较新版本中,第 22 行中的 __init__ 方法有一个名为 show_banner 的参数,默认值为 True。将此更改为 False

最佳答案

这可能不是您要寻找的答案,而是基于我在 InteliJ 产品(PyCharmUltimate)上使用 IPython 的经验, 我不建议使用他们的 IPython 版本。它充满了错误,过时了,你会浪费宝贵的时间来解决问题而不是编码。

你试过 jupyter notebook 吗?如果您使用 anaconda 安装了 python,那么它已经安装好了。要运行它,请打开终端并输入:

jupyter notebook

如果您的浏览器没有自动打开,请前往 http://localhost:8888


注意:

您可以通过创建包含上述代码的 batsh 脚本在您的项目目录中来自动执行此过程,这样它就不会从您的主目录开始,默认情况下会这样做。


资源:

关于python - 在 PyCharm 中运行程序后显示解释器 (IPython) 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32613464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com