Seite 1 von 1

Linux - Python

Verfasst: Donnerstag 17. Juni 2010, 18:59
von flou
Hi,

seit einigen Tagen habe ich jetzt Ubuntu auf meinem Rechner, und wollte nun einige Pythonscripts
von Windows nach Ubuntu portieren..
Das Problem ist weniger Inkompatibilität, sondern mehr.. meine Unfähigkeit ;)
Wenn ich Scripte starten will (über das Terminal) bekomme ich immer die Fehlermeldung:

Code: Alles auswählen

not foundme/Test/test.py:3
So oder so ähnlich
EDIT: Wenn ich ein Terminal öffne, den Pfad manuell eingebe und dann mit python xxx.py aufrufe, klappt alles.
Allerdings kann ich es nicht durch Doppelklick aufrufen (dann auf "Im Terminal ausführen")

hoffe ihr könnt mir weiterhelfen

Grüße

Flo

Re: Linux - Python

Verfasst: Donnerstag 17. Juni 2010, 19:21
von /me
flou hat geschrieben:seit einigen Tagen habe ich jetzt Ubuntu auf meinem Rechner, und wollte nun einige Pythonscripts
von Windows nach Ubuntu portieren..
Das Problem ist weniger Inkompatibilität, sondern mehr.. meine Unfähigkeit ;)
Wenn ich Scripte starten will (über das Terminal) bekomme ich immer die Fehlermeldung:

Code: Alles auswählen

not foundme/Test/test.py:3
Die Fehlermeldung klingt seltsam, aber das scheint sich um ein Problem mit dem Shebang zu handeln. Lies mal http://de.wikipedia.org/wiki/Shebang.

Re: Linux - Python

Verfasst: Donnerstag 17. Juni 2010, 19:51
von jonas
Um /me noch ein wenig zu konkretisieren:

Code: Alles auswählen

#!/usr/bin/python
Ganz oben vor allem anderen in dein Skript :wink:

Lg, Jonas

EDIT: ...und ausführbar machen nicht vergessen -> chmod
Tip mal

Code: Alles auswählen

man chmod
in deine Shell :-)

Re: Linux - Python

Verfasst: Freitag 18. Juni 2010, 14:15
von sma
Da ist garantiert noch ein unsichtbares ^M (aka \r) am Ende der ersten Zeile vor dem Zeilenumbruch. Windows benutzt \r\n als Zeilenendmarkierung, Unix nur \n.

Mit `tr -d '\r'` oder `dos2unix` oder ähnlichen Programmen entfernen und dann solle es klappen.

Stefan

Re: Linux - Python

Verfasst: Sonntag 20. Juni 2010, 08:44
von burli
jonas hat geschrieben:

Code: Alles auswählen

#!/usr/bin/python
mit env wäre es besser, für den Fall dass eine Distribution Python in einem anderen Verzeichnis installiert hat

Code: Alles auswählen

#!/usr/bin/env python

Re: Linux - Python

Verfasst: Sonntag 20. Juni 2010, 12:27
von lunar
Die Distribution wird Python nicht in einem anderen Verzeichnis installieren, "env" dient nur dazu, manuell installierte Python-Versionen zu erkennen.