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
それでも動作しません。助けてください!
これを試して
conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
this thread によると、これは condaのバグ によるもので、pipインストールとの競合につながり、強制再インストールで解決できます。スレッド作成者の場合、$ conda install --force ipython
は問題を解決しました。私にとっては$ conda install --force backports
。
私は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
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としてインポート
私のために働いた唯一のことは、pypiからtarballをダウンロードしてpython setup.py install
を実行することでした
それは魅力のように働いた
Virtualenvは、このような場合、さらに具体的には、グローバルサイトパッケージが許可されていないvirtualenvで非常に便利です。隔離されたvirtualenvでクリーンインストールを実行するだけで、多くの原因を除外します。
私の経験では、IPythonとその依存関係は本当に同じサイトに存在したいと思っています。バックポートパッケージがグローバルにインストールされていて、IPythonがユーザーローミングサイトにインストールされている場合、OPで説明されているようなランタイムインポートエラーが発生する可能性があります。
グローバルサイトパッケージが必要な場合もありますが、ペナルティはsite
とpip/setuptools内の依存関係の処理がより複雑になることです。いくつかのpython設定とWindows環境条件によっては、パッケージはグローバルサイト、ユーザー(ローミング)サイト、virtualenvサイトに広がる可能性があります。
グローバルパッケージまたはユーザーパッケージにアクセスできないvirtualenvでcleanをビルドしてインストールすることにより、奇妙なsite
問題を排除します。 virtualenvwrapperとadd2virtualenv
コマンドを使用すると、特定のグローバルパッケージをきれいに許可できます。
これが誰にも役立つ場合、私にとっての問題は、pipでconfigparser
をローカルにインストールしてから、condaを使用して他のすべてをインストールしようとしたことです。修正するには:
pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.
Configparserのインストールでは、インポート名前空間にbackportsパッケージが置かれ、condaでインストールされたパッケージよりも優先されるようです。