[Solved] Python / Debian

Kastov

Neu angemeldet
Registriert
8 März 2017
Beiträge
47
Hi,

hab wieder ein neues Problem. Python wird nicht die neuste Version anerkannt. Habe Python3.x ueber das Terminal installiert.

Aber wenn ich Python -Version eingebe bekomme ich

You are using python in the version 2.7.13

Weiss jmd Rat?
 
Zuletzt bearbeitet:
Re: Python / Debian

Ich weiß nicht welche Version du von Debian verwendest, aber da es in Unstable auch so ist:
Du mußt Python 3 mit "python3" aufrufen! :)

Und die Pakete für Python 3 - zum Beispiel idle3 für Python 3 Idle usw....

PS: Warum das unter Debian so ist? - Vermutlich weil noch viele Tools und Werkzeuge/Module auf Python2.x laufen...
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #3
Re: Python / Debian



Das aufrufen von Python3.x funktioniert. Manche Programme, wie du sagst Tools, erkennen aber nur die alte Version und nicht die Neue.
 
Re: Python / Debian

Du kannst mal das hier versuchen:



Zeile am Anfang des Skripts:
#!/usr/bin/python3

Das ist quasi die Anweisung, die dem Interpreter der Shell sagt, welche Python Version genutzt werden soll für den Programmaufruf*. :)

Das heißt aber nicht das die Programme dann keine Fehler werfern, weil alter Syntax von Python 2 in Python 3 verwendet wird. Z.b: 'print "Hello World!" (Py2) anstelle von 'print("Hello World")' in Python 3.

*durch/mit der Shell, wenn das Skript ohne "python...." - Kommando ausgeführt wird.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #5
Re: Python / Debian

Leider nichts geaendert.
 
Re: Python / Debian

Was versuchst du denn auszuführen und hast du die Module eventuell auch angepasst die aufgerufen werden?
Also die nicht Python-Standardbibliothek Sachen?

Eventuell wäre auch "pip3" gut zu verwenden. Habs aber unter Linux noch nie getestet.... damit kannst du dir für Python 3 manche/viele/einige Module besorgen - die für die Version angepasst sind.
 
Re: Python / Debian

Es wäre auch mal interessant zu wissen wie du die Programme ausführst.
 
  • Thread Starter Thread Starter
  • #8
Re: Python / Debian

mit 'python Tool.py' oder ./Tool.py als cmd im Terminal
 
Re: Python / Debian

Tool.py ist in dem Fall das von dir geschriebene Programm?

Hast du denn die Zeile oben wie von thesplit empfohlen in das Programm eingefügt?

Wie sieht es denn aus, wenn du
Code:
Expand Collapse Copy
python3 Tool.py
verwendest?
 
  • Thread Starter Thread Starter
  • #10
Re: Python / Debian

Mit ''python3 tool.py'' geht es.

Da haette ich auch drauf kommen koennen.
 
Hätte eigentlich auch über die Shebang-Line (wenn du sie denn eingefügt hast) geregelt werden müssen bei einem Aufruf mit "./tool.py".
Wundert mich dass es das nicht so gebracht hat.
 
Er hat es aber nicht so aufgerufen, sondern mit "python tool.py" und dann ist die natürlich shebang irelephant.
 
@Asseon: Jupp, ist wohl so wie du sagst... - aber hab meinen (Denk)Fehler mit Interpreter versus Shell, mit der Shebang Line, auch nochmal korrigiert, ich hab das zuerst auch falsch interpretiert. :)

Ist etwas lange her....
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #14
Mit ./ würde es übrigens nicht gehen. Aber keine Ahnung weshalb, so lange es geht, Solls mir egal sein.
 
:p - wahr gesprochen.... aber es wäre halt schöner wenn "./" execute auch gehen würde und die Shell regelt - vielleicht ist auch das Statement/der One-liner falsch? :unknown:
Bin da nicht so bewandert.... vielleicht weiß Asseon mehr ;)
 
Vermutlich ist das executable bit nicht gesetzt, dies ließe sich mittels chmod +x tool.py fixen.

Und nur mal so am Rande, es ist normalerweise der Kernel der die Shebang interpretiert, nicht die Shell, die macht das nur als fallback wenn der Kernel die Shebang, aus welchen gründen auch immer, nicht interpretieren kann.
Ein möglicher Grund ist wenn das Programm, dass in der Shebang steht, selbst eine Shebang hat.
 
Zuletzt bearbeitet:
Man kann unter Debian mit folgendem Befehl auch herausfinden, welches das "Standard-Python" auf dem System ist:

[src=bash]ls -al `which python`[/src]

Bei mir (Debian 9) kommt da Python 2.7 raus:

lrwxrwxrwx 1 root root 9 Jan 24 14:00 /usr/bin/python -> python2.7
 
Man kann auch die Shebang Plattformunabhängig machen - unter den verschiedenen *nix-Distros natürlich.

Das wäre dann
/usr/bin/env python3
:-P
 
Zurück
Oben