web-dev-qa-db-ja.com

IPythonコンソールは「backports.shutil_get_terminal_size」を見つけることができず、ロードしません

Anacondaでenvおよびほとんどのpkg管理を行うwindows 10でPython2.7を実行しています。いくつかのパッケージをアップグレードした後、ipythonコンソールはIDEまたはコンソールで起動できません。コンソールで実行しようとすると、次のエラーが表示されます。

Traceback (most recent call last):
File "C:\Anaconda3\Scripts\ipython-script.py", line 3, in <module>
import IPython
File "C:\Anaconda3\lib\site-packages\IPython\__init__.py", line 48, in  <module>
from .core.application import Application
File "C:\Anaconda3\lib\site-packages\IPython\core\application.py", line 24, in <module>
from IPython.core import release, crashhandler
File "C:\Anaconda3\lib\site-packages\IPython\core\crashhandler.py", line 28, in <module>
from IPython.core import ultratb
File "C:\Anaconda3\lib\site-packages\IPython\core\ultratb.py", line 121, in <module>
from IPython.utils.terminal import get_terminal_size
File "C:\Anaconda3\lib\site-packages\IPython\utils\terminal.py", line 27, in <module>
import backports.shutil_get_terminal_size
ImportError: No module named backports.shutil_get_terminal_size

私が最初にやろうとしたことは:

pip install --upgrade backports.shutil_get_terminal_size

出力:

Requirement already up-to-date: backports.shutil_get_terminal_size in c:\anaconda3\lib\site-packages

私は両方でipythonをアンインストールして再インストールしました

conda uninstall ipython
conda install ipython

そして

pip uninstall ipython
pip install ipython

それでも動作しません。助けてください!

19
Rob Truxal

これを試して

conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
30
rjmohit

this thread によると、これは condaのバグ によるもので、pipインストールとの競合につながり、強制再インストールで解決できます。スレッド作成者の場合、$ conda install --force ipythonは問題を解決しました。私にとっては$ conda install --force backports

5

私はCentOS 7を使用していますが、以下に示すようにterminal.pyを変更する必要がありました。

インポート文では、プレフィックスをいじって動作させました-

import os
import sys
import warnings
try:
  from backports import get_terminal_size as _get_terminal_size
except ImportError:
  # use backport on Python 2
  from shutil_backports import get_terminal_size as _get_terminal_size
4
Mike
  • Anacondaで動作Python version Anaconda2-4.2.0-Linux-x86_64.sh
  • ファイルを編集して、「try」および「except」のimportステートメントを削除します
  • 新しいimportステートメントを追加します
  • 構成パーサーの更新=> ./conda install configparser
  • Nbbrowserpdfをインストール=> .pip install nbbrowserpdf

    vim +22 /home/alienone/anaconda2/lib/python2.7/site-packages/IPython/utils/terminal.py

    バックポートからshutil_get_terminal_sizeを_get_terminal_sizeとしてインポート

1
Justin Jessup

私のために働いた唯一のことは、pypiからtarballをダウンロードしてpython setup.py installを実行することでした

それは魅力のように働いた

0
Obol

Virtualenvは、このような場合、さらに具体的には、グローバルサイトパッケージが許可されていないvirtualenvで非常に便利です。隔離されたvirtualenvでクリーンインストールを実行するだけで、多くの原因を除外します。

私の経験では、IPythonとその依存関係は本当に同じサイトに存在したいと思っています。バックポートパッケージがグローバルにインストールされていて、IPythonがユーザーローミングサイトにインストールされている場合、OPで説明されているようなランタイムインポートエラーが発生する可能性があります。

グローバルサイトパッケージが必要な場合もありますが、ペナルティはsiteとpip/setuptools内の依存関係の処理がより複雑になることです。いくつかのpython設定とWindows環境条件によっては、パッケージはグローバルサイト、ユーザー(ローミング)サイト、virtualenvサイトに広がる可能性があります。

グローバルパッケージまたはユーザーパッケージにアクセスできないvirtualenvでcleanをビルドしてインストールすることにより、奇妙なsite問題を排除します。 virtualenvwrapperとadd2virtualenvコマンドを使用すると、特定のグローバルパッケージをきれいに許可できます。

0
user2097818

これが誰にも役立つ場合、私にとっての問題は、pipでconfigparserをローカルにインストールしてから、condaを使用して他のすべてをインストールしようとしたことです。修正するには:

pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.

Configparserのインストールでは、インポート名前空間にbackportsパッケージが置かれ、condaでインストールされたパッケージよりも優先されるようです。

0
markmuetz