2016-06-10 10 views
0

Wenn ich versuche, ein Python-Skript ausführen, bekomme ich Illegal instruction und das ist es, es gibt keine weiteren Details, so dass ich keine Ahnung habe, was los ist, gibt es eine Möglichkeit, was herauszufinden verursacht den Illegal instruction Fehler? Ich auch den Code mit sudo Ich bekomme keine Ausgabe, das Programm wird nur beendet.Python Illegale Anweisung auf Raspberry Pi Null

UPDATE:

Das Skript, das ich laufen bin ist das simple-agent Skript von bluez: https://github.com/pauloborges/bluez/blob/master/test/simple-agent

Auch ich lief Zeile für Zeile wie @buratino sagte, und ich habe den Fehler in der zweiten Zeile :

from gi.repository import GObject

+0

Haben Sie versucht, die Anweisungen des Skripts in einem Interpreter auszuführen? – buratino

+0

Ich habe es auf zwei Arten ausgeführt: './Script' und' python script', dasselbe Ergebnis. – raulsntos

+0

Ich hätte klarer sein sollen. Versuchen Sie '/ usr/bin/python3' (oder die Version, die Sie ausführen möchten) auszuführen. Wenn der Interpreter gestartet wird, können Sie die Anweisungen Ihres Skripts nacheinander eingeben und testen. Wenn dies keine Ergebnisse liefert, könnten Sie das Skript möglicherweise zu Ihrer Frage hinzufügen. – buratino

Antwort

0

Wie @Notlikethat sagte th e Illegal instruction Fehler tritt auf, wenn der ausgeführte Code für eine andere Architektur kompiliert wurde. Raspberry Pi verwendet ARM.

Das sagte, ich fand heraus, dass GObject schien das Problem zu verursachen. Wie auch immer, ich deinstallierte jedes Bluetooth-bezogene Paket, das ich installiert hatte, und installiere es neu mit dem Raspbian-Repository und jetzt ist Illegal instruction weg und das Skript wird korrekt ausgeführt.

Warum ist das passiert? Nun, ich habe einen Raspberry Pi Zero, was bedeutet, dass ich keinen Ethernet-Anschluss habe, bevor ich einen WiFi-Dongle gekauft habe, habe ich ein paar Pakete installiert, indem ich sie auf meinen Computer heruntergeladen habe und das .deb auf der SD-Karte gespeichert habe bedeutet, ich muss manuell überprüfen, dass ich die richtige Version des Pakets herunterladen, ich muss in einem von ihnen versaut haben.

Lektion gelernt, nie versuchen, manuell Pakete zu installieren, lassen Sie apt-get die ganze Arbeit machen!

+1

Es gibt oft Zeiten für mich, in denen das manuelle Herunterladen und Installieren von Paketen der Verwendung von 'apt-get' vorgezogen wird. Eine bessere Lektion, die ich lernen sollte, ist sicher zu sein, was Sie herunterladen und installieren. – buratino