ImportError: Der Name _remove_dead_weakref kann nicht importiert werden

25

Ich habe versucht, mich umzusehen, konnte aber keine gute Lösung finden oder jemanden mit diesem speziellen Fehler.

Es passiert, nachdem ich versucht habe, screen mit zu installieren apt-get install screen.

Error:

Setting up python3.6-minimal (3.6.1-1~14.04.york0) ...
Traceback (most recent call last):
  File "/usr/lib/python3.6/py_compile.py", line 6, in <module>
    import importlib._bootstrap_external
  File "/usr/lib/python3.6/importlib/__init__.py", line 57, in <module>
    import types
  File "/usr/lib/python3.6/types.py", line 171, in <module>
    import functools as _functools
  File "/usr/lib/python3.6/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/usr/lib/python3.6/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
dpkg: error processing package python3.6-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of python3.6:
 python3.6 depends on python3.6-minimal (= 3.6.1-1~14.04.york0); however:
  Package python3.6-minimal is not configured yet.

dpkg: error processing package python3.6 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python3.6-minimal
 python3.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ubuntu ausführen 14.04.

Der Bildschirm selbst scheint auf die neueste Version installiert zu sein, aber die Fehlermeldung hat mich immer noch beunruhigt.

Wirklich ratlos hier, ist jede Hilfe sehr dankbar.

antonlab
quelle
Wie genau hast du python3.6am 14.04 installiert ?
Steeldriver
@steeldriver jonathanf repository: askubuntu.com/questions/865554/…
antonlab
2
Vielleicht ist es ein Problem mit diesem ppa?
Steeldriver
@steeldriver Möglicherweise habe ich python3.6 auch mit einer anderen Methode installiert (ich glaube, sie wird von der Quelle aufgerufen?), sodass möglicherweise Konflikte auftreten. Der Versuch, herauszufinden, wie man jetzt richtig neu installieren,
Antonlab

Antworten:

16

Ich bin kürzlich auf dieses Problem gestoßen, als ich Pycharm 2017.3.2 unter Ubuntu 16.10 verwendete.

Mein Setup war:

Ich habe Python 3.6 von der Python-PPA installiert. Ich hatte Python 3.6.0b4. Allerdings hatte ich gerade Ubuntu auf 17.04 aktualisiert, musste aber noch neu starten. Wenn ich meinen Computer neu startete, löste er immer noch diesen Fehler aus. Aus diesem Grund habe ich versucht, die Standardeinstellung python3.6im Terminal zu ermitteln.

  ~ python3.6
Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.

Daher wurde mir klar, dass das Python in meinem virtuellen Computer veraltet ist oder auf eine falsche Python-Version verweist.

Lösung :

  • Stellen Sie sicher, welche Version von Python 3.6 ich installiert hatte (3.6.1).
  • Meine virtuelle Umgebung wurde entfernt.
  • Neue virtuelle Umgebung mit virtualenvwrapper erstellt: mkvirtualenv --python=python3.6

  • Installiert die Anforderungen mit pip: pip install -r requirements.txt

Hectron
quelle
Ich bin gerade auf einem anderen Laptop darauf gestoßen, den ich herumliegen hatte. Diese Schritte haben dazu beigetragen, meine Probleme zu lösen. : D
Hectron
9

Passiert mir nach dem Upgrade auf Ubuntu 17.10. Ich habe mein python 2.7 virtualenv repariert, indem ich in seinen Ordner gegangen bin und Folgendes eingegeben habe:

virtualenv -p /usr/bin/python2.7 .
Ciske Boekelo
quelle
1
Danke, das hat auch nach einem Upgrade vom 16.04 auf den 18.04 geklappt.
James Bradbury
6

Dies passierte mir nach dem Upgrade von Ubuntu auf 17.10.

Ich habe versucht, eine Anwendung auszuführen, die in einer virtuellen Python-Umgebung installiert wurde.

Ich habe es so behoben:

cd my-virtualenv-directory
virtualenv . --system-site-packages

Die Option --system-site-packageswurde benötigt, da die Anwendung python-gtk von Ubuntu verwendet. Ich vermute, in den meisten anderen Fällen wird es nicht benötigt.

Jetzt ImportError: cannot import name _remove_dead_weakrefist weg :-)

guettli
quelle
1
Nach dem Upgrade auf 18.04 trat dieses Problem auf, und dieses Update funktionierte auch für mich, ohne dass eine der virtuellen Umgebungen neu installiert werden musste. Danke dir!
aspiring_sarge
4

Ich bin kürzlich auf ein ähnliches Problem gestoßen (mein spezieller Fall war die Verwendung eines virtuellen Env nach der Aktualisierung der Python-Systeminstallation). Laut diesem Debian-Fehlerbericht scheint es, dass eine lokale Installation von Python das System stören kann. Da Sie gesagt haben, Sie haben Python von der Quelle installiert, ist dies wahrscheinlich das Problem. Der verknüpfte Fehlerbericht schlägt vor, Python nicht zu installieren /usr/local(Sie können mit dem --prefix=/some/other/directoryFlag to ein anderes Präfix installieren ./configure).

jonathanverner
quelle
Interessant. Ich bin noch ziemlich neu in Linux, aber ich werde sehen, was ich dazu finden kann.
Antonlab
Ich habe miniconda in meinem Haus installiert und konnte das Problem glücklicherweise lösen, indem ich nach der Shell, in der ich miniconda eingerichtet habe, eine neue Shell öffnete.
Fred Schoen