Sypyder中的IPython控制台在Anaconda中非常慢

时间:2018-11-19 19:28:31

标签: python anaconda ipython spyder

使用标准python安装/ IDLE几年后,我正在尝试Anaconda / Spyder。在我运行的每个脚本和交互式命令中,控制台(和变量资源管理器)在每个工作会话期间会逐渐变慢。最终,要花几分钟才能获得对诸如print之类的简单命令的响应,然后它完全停止响应,因此我将其关闭。这对我的工作相当破坏。

Mac OSX 10.13.6

conda version : 4.5.11
conda-build version : 3.15.1
python version : 3.7.0.final.0

qt 5.9.6
spyder 3.3.1 
ipython 7.1.1

我确实经常使用matplotlib。只要有可能,我都会在脚本开头使用plt.ioff(),并在结尾处使用plt.close('all')。在首选项中完全关闭matplotlib支持无济于事,而且它也不是永久性的解决方法。 Python不在我所有的CPU或RAM附近使用任何地方。

5 个答案:

答案 0 :(得分:8)

据我发现,问题似乎出在ipython内核的最新主要版本上。将ipykernel的版本固定为4.10.0可以为我解决。为此,将包含Docker version 18.09.0, build 4d60db4 docker-compose version 1.21.2, build a133471 的行添加到文件ipykernel 4.*中。创建文件(如果尚不存在)。然后~/anaconda3/conda-meta/pinned实际将降级到4.10.0。为我工作!

答案 1 :(得分:3)

您不需要降级整个间谍。 对我来说,它可以降低这两个等级: conda install ipython=6.4.0 conda install ipykernel=4.10.0

答案 2 :(得分:2)

因此,这不是一个完全令人满意的解决方案,但它似乎是一个合理的临时解决方案。如果将spyder版本降级到3.1.X,则可以使用python控制台而不是Ipython控制台,这似乎对我有用。为此,只需运行:

create table class(
    cid int primary key auto_increment,
    caption varchar(10)
);

insert class(caption) values
("三年二班"),
("一年三班"),
("三年一班");
选择的环境处于活动状态时,请在终端上输入

。这是不理想的,因为开发人员出于特定原因(如How to add python console in spyder中所述)删除了python控制台。 另外,降级太多可能会对您的代码使用的其他软件包产生无法预料的影响,并可能导致其他问题,但是到目前为止,这是我唯一能想到的解决方案。

答案 3 :(得分:1)

@Sjoerd感谢您的回答,这对我有用。更清楚地说,这是我在High Sierra的Anaconda 3终端中所做的事情:

  

echo“ ipykernel 4.10.0” >>〜/ anaconda3 / conda-meta / pinned

     

conda更新anaconda

当我尝试仅更新ipykernel时,会出现依赖项错误。通过更新anaconda,所有内容都已更新,但ipykernel有效于4.10.0版本。从那以后我再也没有遇到过挂死的事。

答案 4 :(得分:0)

@ JJR4的答案对我不起作用(似乎对其他人有用)。另一个解决方法是在IPython Spyder控制台中键入%connect_info magic命令,该命令将显示JSON信息以将另一个控制台连接到内核。

magic命令的输出说明了如何连接,但是基本上有三个选项。

将上述JSON粘贴到文件中,然后连接:

$> jupyter <app> --existing <file>

或者,如果您是本地人,则可以仅通过以下方式进行连接:

$> jupyter <app> --existing <kernel>.json

甚至只是:

$> jupyter <app> --existing

如果这是您启动的最新Jupyter内核。

我通常使用qtconsole作为应用程序。在命令行中输入所选的连接方法后,将打开一个新控制台,该控制台与Spyder中的控制台连接到同一内核。由于某些原因,即使Spyder控制台出现故障,新控制台也不会落后。

在新控制台中输入所有内容,甚至runfile()

希望这会有所帮助!

更新: 降级到ipykernel 4.10版似乎可以解决此问题。感谢Carlos Cordoba-在下面的链接中查看GitHub对话。