Ответ 1
Попробуйте это
conda config --add channels conda-forge
conda install 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
Все еще не работает. Помогите пожалуйста!
Попробуйте это
conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
Согласно этот поток, это связано с ошибкой в conda, что приводит к конфликту с установками pip и может быть разрешено с повторной установкой. Для автора потока $ conda install --force ipython
решил проблему, для меня это было $ conda install --force backports
.
Я на 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
Установите 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
Единственное, что сработало для меня, это загрузить tarball из pypi и запустить python setup.py install
Он работал как шарм
Virtualenv может оказаться очень полезным в случае, подобном этому, и даже более конкретно, virtualenv без глобальных пакетов сайтов. Выполните множество причин, просто выполнив чистую установку в изолированном virtualenv.
По моему опыту, IPython и его зависимости действительно хотят находиться на одном сайте. Если у вас установлен пакет backports глобально, но IPython установлен на пользовательском роуминге, вы можете ожидать ошибки импорта во время выполнения, такие как те, которые описаны в OP.
Я понимаю, что иногда нам нужны пакеты глобального сайта, но штраф - это более сложная site
и обработка зависимостей в pip/setuptools. В зависимости от нескольких конфигураций python и условий среды Windows ваши пакеты могут распространяться по глобальным сайтам, пользовательским (роуминговым) сайтам и сайтам virtualenv.
Исправить странные проблемы site
путем создания и установки очистки в virtualenv без доступа к глобальным или пользовательским пакетам. Команда virtualenvwrapper и add2virtualenv
может использоваться для чистого разрешения определенных глобальных пакетов.
В случае, если это помогает кому-то, проблема для меня, похоже, установила configparser
с pip локально, а затем пытается установить все остальное, используя conda. Исправить:
pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.
Кажется, что configparser install помещает пакет backports в пространство имён импорта, которое имеет приоритет над установленным пакетом conda.