Подтвердить что ты не робот

Консоль IPython не может найти "backports.shutil_get_terminal_size" и не будет загружать

Я запускаю Python2.7 в Windows 10, делаю env и большинство pkg-управления с Anaconda. После обновления нескольких пакетов моя консоль 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

Все еще не работает. Помогите пожалуйста!

4b9b3361

Ответ 1

Попробуйте это

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

Ответ 2

Согласно этот поток, это связано с ошибкой в conda, что приводит к конфликту с установками pip и может быть разрешено с повторной установкой. Для автора потока $ conda install --force ipython решил проблему, для меня это было $ conda install --force backports.

Ответ 3

Я на CentOS 7, и мне нужно было изменить мой терминал .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

  • Работает для версии Anaconda Python Anaconda2-4.2.0-Linux-x86_64.sh
  • Отредактируйте файл и избавьтесь от операторов запроса "try" и "except"
  • Добавить в новый оператор импорта
  • Обновить конфигурационный парсер = > ./conda install configparser
  • Установите nbbrowserpdf = > .pip install nbbrowserpdf

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

    из backports import shutil_get_terminal_size как _get_terminal_size

Ответ 5

Единственное, что сработало для меня, это загрузить tarball из pypi и запустить python setup.py install

Он работал как шарм

Ответ 6

Virtualenv может оказаться очень полезным в случае, подобном этому, и даже более конкретно, virtualenv без глобальных пакетов сайтов. Выполните множество причин, просто выполнив чистую установку в изолированном virtualenv.

По моему опыту, IPython и его зависимости действительно хотят находиться на одном сайте. Если у вас установлен пакет backports глобально, но IPython установлен на пользовательском роуминге, вы можете ожидать ошибки импорта во время выполнения, такие как те, которые описаны в OP.

Я понимаю, что иногда нам нужны пакеты глобального сайта, но штраф - это более сложная site и обработка зависимостей в pip/setuptools. В зависимости от нескольких конфигураций python и условий среды Windows ваши пакеты могут распространяться по глобальным сайтам, пользовательским (роуминговым) сайтам и сайтам virtualenv.

Исправить странные проблемы site путем создания и установки очистки в virtualenv без доступа к глобальным или пользовательским пакетам. Команда virtualenvwrapper и add2virtualenv может использоваться для чистого разрешения определенных глобальных пакетов.

Ответ 7

В случае, если это помогает кому-то, проблема для меня, похоже, установила configparser с pip локально, а затем пытается установить все остальное, используя conda. Исправить:

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

Кажется, что configparser install помещает пакет backports в пространство имён импорта, которое имеет приоритет над установленным пакетом conda.