ImportError: impossibile importare il nome _remove_dead_weakref


25

Ho provato a cercare in giro ma non sono stato in grado di trovare una buona soluzione o chiunque altro con questo errore specifico.

Succede dopo aver provato a installare lo schermo con apt-get install screen.

Errore:

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)

Esecuzione di Ubuntu 14.04.

Lo schermo stesso sembra essere installato all'ultima versione ma il messaggio di errore mi preoccupa ancora.

Davvero in perdita qui, qualsiasi aiuto è molto apprezzato.


Come hai installato esattamente python3.6il 14.04?
steeldriver,

@steeldriver repository jonathanf: askubuntu.com/questions/865554/…
antonlab

2
Forse è un problema con quel ppa?
steeldriver,

@steeldriver Potrei aver installato anche python3.6 usando un altro metodo (penso che sia chiamato dal sorgente?), quindi potrebbero esserci cose contrastanti.
Sto

Risposte:


16

Di recente ho riscontrato questo problema quando stavo usando Pycharm 2017.3.2 su Ubuntu 16.10.

La mia configurazione era:

Ho installato Python 3.6 dal PPA Python. Ho avuto Python 3.6.0b4. Tuttavia, avevo appena aggiornato Ubuntu a 17.04, ma non avevo ancora riavviato. Quando ho riavviato il mio computer, stava ancora generando quell'errore. Pertanto, ho provato a vedere quale era l'impostazione predefinita python3.6nel terminale.

  ~ 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.

Pertanto, mi sono reso conto che il Python che avevo nel mio virtualenv potrebbe essere obsoleto o indicando una versione errata di Python.

Soluzione :

  • Assicurati quale versione di Python 3.6 avevo installato (3.6.1).
  • Rimosso il mio ambiente virtuale.
  • Creato nuovo ambiente virtuale usando virtualenvwrapper: mkvirtualenv --python=python3.6

  • Installato i requisiti con pip: pip install -r requirements.txt


Mi sono appena imbattuto in questo su un altro laptop che avevo in giro. Questi passaggi mi hanno aiutato a risolvere i miei problemi. : D
Hectron,

9

Mi è successo dopo l'aggiornamento a Ubuntu 17.10. Ho corretto il mio virtualen python 2.7 andando nella sua cartella e digitando:

virtualenv -p /usr/bin/python2.7 .

1
Grazie, ha funzionato anche dopo un aggiornamento dal 16.04 al 18.04.
James Bradbury,

6

Questo mi è successo dopo aver aggiornato Ubuntu alla 17.10.

Ho provato a eseguire un'applicazione installata in un virtualenv Python.

L'ho risolto in questo modo:

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

L'opzione --system-site-packagesera necessaria perché l'applicazione utilizza python-gtk da Ubuntu. Immagino che nella maggior parte degli altri casi non sia necessario.

Ora non ImportError: cannot import name _remove_dead_weakrefc'è più :-)


1
Ho riscontrato questo problema dopo l'aggiornamento a 18.04 e questa correzione ha funzionato anche per me senza la necessità di reinstallare nessuno degli ambienti virtuali; grazie!
aspiring_sarge

4

Di recente ho riscontrato un problema simile (il mio caso specifico stava usando un virtualenv dopo aver aggiornato l'installazione di Python di sistema). Secondo questa segnalazione di bug debian , un'installazione locale di Python può interferire con quella di sistema. Dato che hai detto di aver installato Python dal sorgente, questo è probabilmente il problema. La segnalazione di bug collegata suggerisce di non installare python in /usr/local(è possibile installare un prefisso diverso usando il --prefix=/some/other/directoryflag to ./configure).


Interessante. Sono ancora abbastanza nuovo su Linux, ma vedrò cosa riesco a trovare.
antonlab,

Ho installato la miniconda a casa mia e fortunatamente ho potuto risolvere il problema aprendo una nuova shell dopo quella in cui ho installato la miniconda.
Fred Schoen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.