我已将PyCharm专业版 3.5 5.0配置为
尽可能使用IPython
在我的运行/调试配置中设置
之后显示口译员
我经常使用交互式解释器,我非常喜欢IPython,但是有一些事情我不喜欢在PyCharm中处理它的方式:
我程序中的任何input()
都会返回空字符串。
此外,当发生错误时,我无法再与该程序进行交互。 (您可以在运行带有-i
标志的Python程序时使用
控制台的最后一行与当前行之间有很多空格
在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后,它会向控制台输出大量文本。除了版本号之外,我不想看到任何其他内容(您通常可以使用--no-banner
选项执行此操作,但将其添加到解释器选项中并不起作用)
当您输入内容并按Up
时,它会替换我在历史记录的最后一项中所写的内容,而不是将我的历史记录的最后一项替换为我输入的内容。普通的IPython就是这样做的。
我希望自动代码完成,而无需在控制台中按Ctrl + Space
&#34;问题&#34;按重要性排序。有谁知道如何更改其中一些?我可以停止使用IPython来解决第二个,第三个和第四个问题,但其他问题仍然存在。所有这些行为(不包括IPython的东西)都在PyScripter中很好地实现了。
我找到了前两个问题的解决方案以及IPython横幅的问题。 PyDev交互式解释器(由PyCharm使用)的源位于Windows上,位于C:\Program Files (x86)\PyCharm\helpers\PyDev
(当然,路径不同)。
因此,编辑文件_pydev_imps/_pydev_execfile.py
可以解决第一个问题。在exec(compile(contents+"\n", file, 'exec'), glob, loc)
块中包装第18行(try ... except
),并使用以下代码作为异常处理程序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_console
和pydev_ipython_console_011
替换为新版本。在第一个文件的较新版本中,第22行中的__init__
方法有一个名为show_banner
的参数,其默认值为True
。将其更改为False
。
答案 0 :(得分:1)
这可能不是您要寻找的答案,但是基于我在InteliJ产品(IPython
,PyCharm
)上使用Ultimate
的经验,我不建议使用其IPython
版本。它充满了过时的错误,您将浪费宝贵的时间来解决问题,而不是去编码。
您尝试过jupyter notebook
吗?如果您将python
与anaconda
一起安装,则说明它已经安装。要运行它,请打开终端并输入:
jupyter notebook
如果您的浏览器无法自动打开,请转到http://localhost:8888
注意:
您可以通过创建bat
或sh
脚本来自动执行此过程,该脚本包含位于项目目录内上方的代码,这样就不会在您的主目录中启动,默认情况下。
资源:
答案 1 :(得分:0)
老实说,您是否只是尝试运行较新版本的PyCharm并导入设置? 3.5已经过时了(我自己4.5.3,最新版本是5.0)我相信在新版本中为IPython提供了更多支持。 https://www.jetbrains.com/pycharm/help/ipython.html。特别是如果你是一名学生,那么试一试就不会有什么坏处。我知道PyCharm的旧版本比最近发布的版本更加错误。