it-swarm.com.de

Die IPython-Konsole kann "backports.shutil_get_terminal_size" nicht finden und wird nicht geladen

Ich verwende Python2.7 unter Windows 10 und erledige dabei die Umgebung und die meisten Paketverwaltungsfunktionen mit Anaconda. Nach dem Upgrade einer Reihe von Paketen kann meine ipython-Konsole jetzt nicht in einer beliebigen IDE oder an der Konsole gestartet werden. Wenn ich versuche, es auf der Konsole auszuführen, erhalte ich diese Fehlermeldung:

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

Das erste, was ich versuchte, war:

pip install --upgrade backports.shutil_get_terminal_size

ausgabe:

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

Ich habe ipython mit beiden deinstalliert und neu installiert

conda uninstall ipython
conda install ipython

und

pip uninstall ipython
pip install ipython

Immer noch nicht funktionieren. Hilfe bitte!

19
Rob Truxal

Versuche dies

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

Laut diesem Thread liegt dies an einem Fehler in conda , der zu einem Konflikt mit Pip-Installationen führt und mit einer Neuinstallation gelöst werden kann. Für den Threadautor hat $ conda install --force ipython das Problem gelöst, für mich war es $ conda install --force backports.

5

Ich bin auf CentOS 7 und musste mein terminal.py wie unten gezeigt ändern.

Bei den Import-Anweisungen habe ich mit den Präfixen herumgespielt und es funktioniert -

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
  • Funktioniert für Anaconda Python-Version Anaconda2-4.2.0-Linux-x86_64.sh
  • Bearbeiten Sie die Datei und entfernen Sie die Importanweisungen "try" und "außer" 
  • Fügen Sie die neue Importanweisung hinzu 
  • Update config parser => ./conda install configparser
  • Installiere nbbrowserpdf => .pip install nbbrowserpdf

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

    importieren Sie aus den Rückports shutil_get_terminal_size als _get_terminal_size

1
Justin Jessup

Das einzige, was für mich funktionierte, war, das Tarball von pypi herunterzuladen und python setup.py install auszuführen.

Es hat wie ein Zauber funktioniert

0
Obol

Virtualenv kann sich in einem solchen Fall als sehr nützlich erweisen, insbesondere bei einer Virtualenv, für die keine globalen Site-Pakete zulässig sind. Schließen Sie viele Ursachen aus, indem Sie einfach eine saubere Installation in einer isolierten virtuellen Umgebung durchführen.

Nach meiner Erfahrung möchten IPython und seine Abhängigkeiten wirklich an derselben Site sein. Wenn Sie das Backports-Paket global installiert haben, aber IPython auf der Roaming-Site für Benutzer installiert haben, können Laufzeitfehler beim Importieren auftreten, z. B. die im OP beschriebenen.

Ich weiß, dass wir manchmal globale Site-Pakete benötigen, aber der Nachteil ist eine kompliziertere site- und Abhängigkeitsabwicklung innerhalb von pip/setuptools. Abhängig von mehreren Python-Konfigurations- und Windows-Umgebungsbedingungen können Ihre Pakete auf globale Sites, Roaming-Sites und Virtualenv-Sites verteilt sein.

Seltene site-Probleme ausschließen, indem Sie clean in einer virtuellen Umgebung ohne Zugriff auf globale Pakete oder Benutzerpakete installieren und installieren. Mit dem Befehl virtualenvwrapper und add2virtualenv können bestimmte globale Pakete sauber zugelassen werden.

0
user2097818

Falls dies jemandem hilft, schien es für mich das Problem zu sein, configparser lokal mit pip installiert zu haben und dann alles andere mit Conda zu installieren. Reparieren:

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

Es scheint, als würde die Configparser-Installation ein backports-Paket in den Import-Namespace einfügen, das Vorrang vor dem installierten conda-Paket hatte.

0
markmuetz