通过 spyder 在 运行 sympy 时摆脱黑色控制台 windows

Getting rid of black console windows when running sympy through spyder

每当我尝试通过 IPython 控制台在 Spyder 中显示符号数学时,几个黑色控制台 windows 弹出然后快速连续消失。它打印表达式,但我想知道是否有办法摆脱这些 windows。如果有帮助,windows 的标题为 "C:\Program Files\MikTex 2.9..."。

看起来有人已经解决了这个问题并在 GitHub 上发布了解决方案。这是link:https://github.com/sympy/sympy/issues/11882

我(作为新手)花了一些时间才弄清楚他到底做了什么,所以下面只是更详细的解释:

首先需要在sympy包中找到兼容模块。对我来说,它位于 "C:\Users\Lucas\Anaconda3\Lib\site-packages\sympy\core\compatibility.py"。接下来,您需要(在该模块的源代码中)搜索 check_output 函数。周围的代码应该类似于:

# check_output() is new in Python 2.7
import os

try:
    try:
        from subprocess import check_output

最后,您需要删除最后一行,并将其替换为 GitHub link 中的代码。生成的块应如下所示:

# check_output() is new in Python 2.7
import os

try:
    try:
        from subprocess import check_output as subprocess_check_output
        def check_output(*args, **kwargs):
            return subprocess_check_output(*args, **kwargs, creationflags=0x08000000) # CREATE_NO_WINDOW

在我看来,他定义了一个代替 check_output 的函数,除了抑制输出 windows 的参数总是被输入。希望这对其他人有帮助问题,感谢 Adam 在 GitHub 上的修复。

我提交了一个拉取请求来永久解决这个问题:

https://github.com/sympy/sympy/pull/12391