import: not found

Probleme bei der Installation?
Antworten
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

Hi,
nach langem suchen habe ich mich hier angemeldet in der Hoffnung das mir jemand weiter helfen kann.

Ich habe einen Python-Skript geschrieben, der auf meinem Raspberry (wheezy) laufen soll.
Nur leider bekomme ich folgende Fehlermeldung
root@raspberrypi:/home/pi/Desktop/hoerkino# sh programm.sh
programm.sh: 2: programm.sh: import: not found
programm.sh: 3: programm.sh: import: not found
programm.sh: 4: programm.sh: import: not found
programm.sh: 5: programm.sh: import: not found
programm.sh: 8: programm.sh: Syntax error: "(" unexpected
Die ersten Zeilen des Skripts sehen wie folgt aus und funktioniert auch unter Windows.

Code: Alles auswählen

#!/usr/bin/python
import urllib.request
import time
import os
import sys

#url laden
with urllib.request.urlopen("http://www.antennethueringen.de/at_www/Unterhaltung/Hoerkino/Hoerkino.php") as url:
    s = url.read().decode('utf-8')

#datum bestimmen
now = time.localtime()

Es ist ein Skript, das eine URL parst und mir daraus eine gewünschte Information liefert. Wie gesagt unter Windows läuft dieser Einwandfrei.

Also Python ist installiert und das Verzeichnis /usr/bin/python existiert. Sowohl meine Linux als auch meine Python-Kenntnisse bewegen sich auf dem selber Niveau. Irgendwo am Anfang des Weges, aber mit Kenntnisse über die korrekte Benutzung einer Karte, oder zumindest den Glauben daran. ^.^

Vielen Dank für die Mühe
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Python Programme haben normalerweise die Endung .py (das sollte, muss aber nicht) und werden vor allen Dingen unter Python und nicht mit der Shell ausgeführt.
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

/me hat geschrieben:Python Programme haben normalerweise die Endung .py (das sollte, muss aber nicht) und werden vor allen Dingen unter Python und nicht mit der Shell ausgeführt.
Sehr gut, Danke. Das hat die Situation schon mal geändert. Jetzt gibt die Shell einen Fehler zurück.

Code: Alles auswählen

Traceback (most recent call last):
  File "programm.py", line 2, in <module>
    import urllib.request
ImportError: No module named request

Wenn ich das richtig verstehe, findet er das modul urllib.request nicht.
BlackJack

@Masuuk: Kann es sein dass Du versuchst ein Python 3.x Programm mit Python 2.x auszuführen? ``python`` ist bei den meisten Linux-Distributionen ein 2.x. Wenn Python 3.x installiert ist, dann heisst der Interpreter normalerweise ``python3``.
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

BlackJack hat geschrieben:@Masuuk: Kann es sein dass Du versuchst ein Python 3.x Programm mit Python 2.x auszuführen? ``python`` ist bei den meisten Linux-Distributionen ein 2.x. Wenn Python 3.x installiert ist, dann heisst der Interpreter normalerweise ``python3``.
Hmm, leider kommt immer noch die Fehlermeldung,

ich hab folgende Zeilen versuch:

Code: Alles auswählen

#!/user/bin/python
#!/user/bin/python3
#!/user/bin/python3.2
hat aber leider alles nichts geholfen. :-(
BlackJack

@Masuuk: 1. bringt es nichts die alle *drei* in die Datei zu schreiben und 2. ist diese Zeile nur relevant wenn die Datei ausführbar ist, also das entsprechende Bit in den Dateirechten gesetzt ist und die *Datei* ausgeführt wird.

Arbeite mal The Command Line Crash Course durch und schau Dir dann in der Python-Dokumentation an wie man Python benutzt: http://docs.python.org/2/using/
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

BlackJack hat geschrieben:@Masuuk: 1. bringt es nichts die alle *drei* in die Datei zu schreiben und 2. ist diese Zeile nur relevant wenn die Datei ausführbar ist, also das entsprechende Bit in den Dateirechten gesetzt ist und die *Datei* ausgeführt wird.

Arbeite mal The Command Line Crash Course durch und schau Dir dann in der Python-Dokumentation an wie man Python benutzt: http://docs.python.org/2/using/
Danke für den Tipp. Werde ich mir mal durcharbeiten.

Natürlich habe ich diese nicht zusammen in der Datei gehabt, sondern nacheinander getestet. Der Skript soll Ausführbar sein und die Rechte sind gegeben.

Nachtrag:
laut
python -V
ist die Version 2.7.3 Aktiv
obwohl auch 3.2 installiert ist! oO
BlackJack

@Masuuk: Ich sagte ja schon das Python 3.x normalerweise den Namen ``python3`` hat.
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Masuuk hat geschrieben: ich hab folgende Zeilen versuch:

Code: Alles auswählen

#!/user/bin/python
#!/user/bin/python3
#!/user/bin/python3.2
hat aber leider alles nichts geholfen. :-(
Es muss überall /usr/bin/ (von "user system resources") statt /user/bin/ heißen.

Die Zeile muss immer die erste Zeile in der Datei sein und du muss das Skript direkt starten, also z.B. mit

Code: Alles auswählen

./programm.sh
oder

Code: Alles auswählen

/home/pi/Desktop/hoerkino/programm.sh
nicht mit sowas wie

Code: Alles auswählen

python3 programm.sh
http://www.florian-diesch.de
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

diesch hat geschrieben:
Masuuk hat geschrieben: ich hab folgende Zeilen versuch:

Code: Alles auswählen

#!/user/bin/python
#!/user/bin/python3
#!/user/bin/python3.2
hat aber leider alles nichts geholfen. :-(
Es muss überall /usr/bin/ (von "user system resources") statt /user/bin/ heißen.

Die Zeile muss immer die erste Zeile in der Datei sein und du muss das Skript direkt starten, also z.B. mit

Code: Alles auswählen

./programm.sh
oder

Code: Alles auswählen

/home/pi/Desktop/hoerkino/programm.sh
nicht mit sowas wie

Code: Alles auswählen

python3 programm.sh

Ahh Sry. war nur ein Schreibfehler!

es heißt natürlich usr nicht user!

Also daran liegt es nicht :(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was wenn du mal ``python programm.sh`` ausprobierst? (also, angenommen die Datei heißt sinnloserweise ``programm.sh``).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Masuuk
User
Beiträge: 6
Registriert: Freitag 4. Oktober 2013, 15:48

Das Problem war lediglich das fehlende Modul. Habe die ältere Version genommen und es funktionierte. Dankeschön
Antworten