web-dev-qa-db-ja.com

AnacondaでスパイダーのIPythonコンソールが非常に遅い

標準のpython installation/IDLEを数年間使用した後、Anaconda/Spyderを試しています。コンソール(および変数Explorer)は、すべてのスクリプトとインタラクティブコマンドにより、各作業セッション中に徐々に遅くなります実行すると、最終的には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の近くのどこも使用していません。

4

したがって、これは完全に満足のいく解決策ではありませんが、合理的な一時的な修正のようです。スパイダーのバージョンを3.1.Xにダウングレードすると、Ipythonコンソールではなくpython consoleを使用できます。これは私にとってはうまくいくようです。これを行うには、次のコマンドを実行するだけです。

conda install spyder=3.1

選択した環境がアクティブな間、ターミナルで。開発者はこの質問で述べたように、特定の理由でpython consoleを削除したため、理想的ではありません How to add python console in spyder 。さらに、これだけダウングレードすると、コードが使用する他のパッケージに予期しない影響を及ぼし、他の問題を引き起こす可能性がありますが、これまでのところ、これが私が思いついた唯一の解決策です。

2
JJR4

私が見つけた限りでは、問題はipythonカーネルの最新のメジャーリリースにあるようです。 ipykernelのバージョンを4.10.0に固定することで解決しました。そのためには、ipykernel 4.*を含む行をファイル~/anaconda3/conda-meta/pinnedに追加します。ファイルがまだ存在しない場合は作成します。次に、実際に4.10.0にダウングレードするconda update ipykernel。私のために働いた!

9
Sjoerd

スパイダー全体をダウングレードする必要はありません。私にとっては、次の2つをダウングレードすることで機能しました:conda install ipython=6.4.0 conda install ipykernel=4.10.0

7
Artur Nowicki

@Sjoerdあなたの答えをありがとう、これは私のために働いたものです。より明確にするために、ここに私がハイシエラのアナコンダ3のターミナルで行ったことを示します。

echo "ipykernel 4.10.0" >>〜/ anaconda3/conda-meta/pinned

conda update anaconda

Ipykernelのみを更新しようとすると、依存関係エラーが発生します。 anacondaを更新すると、すべてが最新の状態になりますが、実質的にバージョン4.10.0のipykernelです。それ以来、何もハングしていません。

2
Félix Chénier

@ JJR4の答えは私にはうまくいきませんでした(他の人のために働くようです)。別の回避策は、JSON情報を表示して別のコンソールをカーネルに接続するIPython Spyderコンソールに_%connect_info_ magicコマンドを入力することです。

Magicコマンドの出力は接続方法を説明していますが、基本的に3つのオプションがあります。

上記のJSONをファイルに貼り付け、次のように接続します。

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

または、ローカルの場合は、次の方法で接続できます。

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

または単に:

_$> jupyter <app> --existing
_

これが、起動した最新のJupyterカーネルである場合。

私は通常、アプリとしてqtconsoleを使用します。選択した接続方法をコマンドラインに入力すると、Spyderのコンソールと同じカーネルに接続されている新しいコンソールが開きます。何らかの理由で、Spyderコンソールが遅れても、新しいコンソールは遅れません。

runfile()も含め、すべてを新しいコンソールに入力します

お役に立てれば!

更新:ipykernelバージョン4.10にダウングレードすると問題が解決するようです。 Carlos Cordobaに感謝します-以下のリンクのGitHubの会話を参照してください。

0
Charlie Roe