2012-12-04 9 views
20

Sono utenti Debian, e voglio installare python-dev, ma quando ho eseguito il codice nella shell come root:python-dev installazione di errore: ImportError: No module named apt_pkg

# aptitude install python-dev 

I ottenere il seguente errore:

Traceback (most recent call last):  
    File "/usr/bin/apt-listchanges", line 28, in <module> 
    import apt_pkg 
ImportError: No module named apt_pkg 

Quale sembra essere il problema e come posso risolverlo?

+0

assomiglia il tuo apt rotto ist, cosa succede quando si tenta apt-get install python-dev –

+0

quando provo con apt-get install python-dev si dice che è già installato: lettura degli elenchi di pacchetti ... Fatto Albero di dipendenza dell'edificio Informazioni sullo stato di lettura ... Fine python-dev è già la versione più recente. 0 aggiornato, 0 appena installato, 0 da rimuovere e 0 non aggiornato. Qualche altro suggerimento? – Belphegor

risposta

23

Assicurarsi di disporre di un pacchetto Python-apt funzionante. Potresti provare a rimuovere e installare di nuovo quel pacchetto per risolvere il problema con apt_pkg.so che non si trova.

apt-get install python-apt 
+0

È già installato. Quando mi ha colpito: # apt-get install python-apt mi dà della lista dei pacchetti Reading ... Fatto Generazione dell'albero delle dipendenze Lettura informazioni sullo stato ... Fatto python-apt è già alla versione più recente. 0 aggiornato, 0 appena installato, 0 da rimuovere e 0 non aggiornato. E quando provo di nuovo con: # aptitude install python-dev Mi dà ancora una volta lo stesso errore. Alcune altre idee cosa dovrei fare? – Belphegor

+2

rimuovilo usando 'apt-get remove --purge python-apt' e installalo di nuovo – Arnestig

+0

Grazie mille @Arnestig, che ha funzionato davvero! – Belphegor

4

Recentemente ho riscontrato lo stesso problema ogni volta che eseguo uno script Python 3.3.0 in Aptana Studio utilizzando Ubuntu Quantal. A parte l'errore dello script su cui sto lavorando, ottengo il seguente mescolata con essa:

Error in sys.excepthook: 
Traceback (most recent call last): 
    File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in 
    apport_excepthook from apport.fileutils import likely_packaged, 
    get_recent_crashes 
    File "/usr/lib/python3/dist-packages/apport/__init__.py", line 4, in <module> 
    from apport.report import Report 
    File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> 
    import apport.fileutils 
    File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in 
    <module> from apport.packaging_impl import impl as packaging 
    File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in 
    <module> import apt 
    File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module> 
    import apt_pkg 
ImportError: No module named 'apt_pkg' 

Ho provato a rimuovere, pulizia, spurgo, e la reinstallazione python3-apt, e il tipo di curiosare in giro un po ', e ho scoperto che l'errore ha effetto solo su Python 3.3.0. Cercando di importare apt_pkg in IDLE abbaia lo stesso errore. È interessante notare che importare questo utilizzando IDLE con Python 3.2.3 funziona correttamente. Inoltre, entrambe le versioni di Python 3.x.x condividono lo stesso /usr/lib/python3/dist-packages e al suo interno sono presenti apt_pkg.cpython-32mu.so e apt_pkg.cpython-32dmu.so. Questi file non sono compatibili con Python 3.3.0?

Un'ultima cosa, eseguire lo script all'esterno di Aptana Studio mi dà l'errore del mio script senza il messaggio ImportError: No module named 'apt_pkg'.

+1

Stavo ricevendo il tuo messaggio di errore. Dai un'occhiata a/usr/bin/apt-add-repository. Si noti che definisce #!/usr/bin/python3. Il problema era che avevo installato python3.3 e il mio python3 stava puntando a python3.3. Una volta eseguito esplicitamente 'sudo python3.2/usr/bin/apt-add-repository xxxx' ha funzionato –

+0

OK, più luce al mistero: eseguire lo script all'esterno di Aptana chiamando' python3.2' o 'python3' che punta a 3.2 funziona (cioè ottengo l'errore dello script senza l'errore 'apt_pkg'), ma se lo eseguo con' python3.3', l'errore è tornato. – Roberto

+0

Questo post non è una risposta alla domanda. Funzionerebbe meglio come una nuova domanda con questi dettagli, chiedendo una risposta. – bignose

3

Per qualche motivo la mia installazione mancava di apt_pkg.so nella directory python3 dist-packages. (apt_pkg.cpython-33m-x86_64-linux-gnu.so era lì ?!), ma e ho dovuto fare un link simbolico apt_pkg.so -> apt_pkg.cpython-33m-x86_64-linux-gnu.so in /usr/lib/python3/dist-packages

io non sono sicuro se il mio aggiornamento era rotto o perché questo era il caso. Si è verificato dopo aver tentato l'aggiornamento (preciso-> raro-> aggiornamento quantico)

19

Ho incontrato questo problema quando si esegue sudo apt-get update. Il mio env è debian8, con python2.7 + 3.4 (predefinito) + 3.5.

Il seguente codice solo ri-creare un file apt_pkg....so per Python 3,5

sudo apt-get install python3-apt --reinstall 

Il seguente codice risolto il mio problema,

cd /usr/lib/python3/dist-packages 
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so 

Così, ovviamente, controlli python3-apt il più alto pitone versione, invece della versione attuale di Python in uso.

+0

Risolto il mio problema, grazie mille! – laike9m

11

risolverlo da questo:

/usr/lib/python3/dist-packages# cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so

1

Se stai usando python 3.5, downgrade a 3,4. Questa è la mossa più sicura da fare.

Sotto /usr/lib/python3/dist-packages vedrete *34m* quale python 3.5 non può usare. zhazha risponde come link simbolico ad esso.

0

Solo nel caso aiuta un altro, ho finalmente risolto questo problema, che è stato a quanto pare causato da conflitti di versione pitone, reindirizzando il python3 collegamento, quindi il reindirizzamento verso destra versione di Python:

sudo rm /usr/bin/python3 
sudo ln -s /usr/bin/python3.4 

Si può necessario inserire la versione di Python corretta, trovato con:

python3 -V