使用标准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附近使用任何地方。
答案 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对话。