2012-12-04 6 views
20

Ich bin Debian Benutzer, und ich möchte Python-dev installieren, aber wenn ich führen Sie den Code in der Shell als root:Python-dev Installationsfehler: Import: Kein Modul namens apt_pkg

# aptitude install python-dev 

I den folgenden Fehler erhalten:

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

Was scheint das Problem zu sein und wie kann ich es lösen?

+0

wie Ihr apt ist gebrochen sieht, was passiert, wenn Sie versuchen, apt-get install python-dev –

+0

wenn ich mit versuchen, apt-get install python-dev es sagt dass es bereits installiert ist: Paketlisten lesen ... Fertig Gebäudeabhängigkeitsbaum Lesen von Statusinformationen ... Fertig python-dev ist bereits die neueste Version. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Irgendwelche anderen Vorschläge? – Belphegor

Antwort

23

Stellen Sie sicher, dass Sie ein funktionierendes Python-Apt-Paket haben. Sie könnten versuchen, dieses Paket erneut zu entfernen und zu installieren, um das Problem zu beheben, dass apt_pkg.so nicht gefunden wurde.

+0

Es ist bereits installiert. Als ich getroffen: # apt-get install python-apt es gibt mir Listen Lesepaket ... Fertig Abhängigkeitsbaum Reading state information ... Fertig python-apt ist schon die neueste Version. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Und wenn ich versuche, wieder mit: # apt-get install python-dev Es mir die gleichen Fehler wieder gibt. Einige andere Ideen, was soll ich tun? – Belphegor

+2

entfernen Sie es mit 'apt-get entfernen --purge python-apt' und installieren Sie es erneut – Arnestig

+0

Vielen Dank @Arnestig, das hat wirklich funktioniert! – Belphegor

4

Ich habe vor kurzem das gleiche Problem immer wenn ich ein Python 3.3.0 Skript in Aptana Studio mit Ubuntu Quantal ausgeführt. Abgesehen von dem Fehler aus dem Skript arbeite ich an, werde ich das mit ihm vermischte folgende:

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' 

Ich habe versucht, Entfernen, Reinigen, Spülen und Neuinstallation python3-apt und Art um ein bisschen Snooping, und ich habe festgestellt, dass der Fehler nur Python 3.3.0 betrifft. Der Versuch, apt_pkg in IDLE zu importieren, bellt den gleichen Fehler. Interessanterweise funktioniert das Importieren von IDLE mit Python 3.2.3 gut. Darüber hinaus teilen beide Version von Python 3.x.x die gleiche /usr/lib/python3/dist-packages, und darin gibt es apt_pkg.cpython-32mu.so und apt_pkg.cpython-32dmu.so. Sind diese Dateien nicht kompatibel mit Python 3.3.0?

Eine letzte Sache, führt das Skript außerhalb von Aptana Studio gibt mir mein Skript Fehler ohne die ImportError: No module named 'apt_pkg' Nachricht.

+1

Ich erhielt Ihre Fehlermeldung. Sehen Sie sich/usr/bin/apt-add-repository an. Beachten Sie, dass es # definiert!/usr/bin/python3. Das Problem war, dass ich python3.3 installiert hatte und mein Python3 auf python3.3 zeigte. Sobald ich 'sudo python3.2/usr/bin/apt-add-repository xxxx explizit ausgeführt habe, funktionierte es –

+0

OK, mehr Licht zum Mysterium: Ausführen des Skripts außerhalb von Aptana durch Aufruf von' python3.2' oder 'python3' welches Punkte bei 3.2 funktioniert (was bedeutet, dass ich den Fehler des Skripts ohne den Fehler 'apt_pkg' bekomme), aber wenn ich es mit 'python3.3' starte, ist der Fehler zurück. – Roberto

+0

Dieser Beitrag ist keine Antwort auf die Frage. Es würde mit diesen Details besser als eine neue Frage funktionieren und nach einer Antwort fragen. – bignose

3

Aus irgendeinem Grund fehlte meine Installation apt_pkg.so in den python3 dist-packages dir. (apt_pkg.cpython-33m-x86_64-linux-gnu.so war es ?!), aber ich hatte einen Symlink apt_pkg.so -> apt_pkg.cpython-33m-x86_64-linux-gnu.so in /usr/lib/python3/dist-packages

machen Ich bin nicht sicher, ob mein Upgrade kaputt war oder warum dies der Fall war. Es trat auf, nachdem versucht wurde, zu aktualisieren (präzise-> raring-> quantal upgrade)

19

Ich traf dieses Problem, wenn Sie sudo apt-get update tun. Mein env ist debian8, mit python2.7 + 3.4 (Standard) + 3.5.

Der folgende Code wird nur eine apt_pkg....so Datei für Python 3,5

sudo apt-get install python3-apt --reinstall 

Der folgende Code ist mein Problem,

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

Also, natürlich, python3-apt überprüft die höchste Python neu erstellen Version, anstelle der aktuellen Python-Version in Verwendung.

+0

Mein Problem gelöst, vielen Dank! – laike9m

11

Lösen Sie es durch dieses:

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

1

Wenn Sie mit Python 3.5, Herabstufung auf 3,4. Das ist der sicherste Schritt.

Unter /usr/lib/python3/dist-packages sehen Sie *34m*, die Python 3.5 nicht verwenden kann. zhazha antworten symlink darauf.

0

Gerade falls es ein anderes hilft, ich löste dieses Problem endlich, dass offenbar von Python-Version Konflikte verursacht wurde, indem Sie den Link python3 Umleitung, dann nach rechts Python-Version umleiten:

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

Sie können müssen die richtige python-Version geben, gefunden mit:

python3 -V