Wie kann ich Python 3.x auf Raspberry als Standard

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
franz_news
User
Beiträge: 9
Registriert: Freitag 28. April 2017, 07:19

Auf Raspberry sind zwei Python Versionen installiert. Wie kann ich die Version 2.7.9 deinstallieren ohne alles zu zerschießen? Abhängigkeiten!!

Damit Python 3.x als Standard benutzt wird. (z.B. Bibliotheken u.ä)
BlackJack

@franz_news@web.de: Das geht gar nicht, ich wüsste auch nicht warum man das machen wollte‽ Die beiden existieren doch problemlos nebeneinander. Und ``python`` sollte *immer* ein Python 2 starten, das heisst selbst wenn Du Python 2 deinstallieren könntest, würde Python 3 immer noch mit ``python3`` gestartet werden müssen.
franz_news
User
Beiträge: 9
Registriert: Freitag 28. April 2017, 07:19

Danke für die schnelle Reaktion:

vielleicht habe ich was falsch verstanden aber ich habe gerade für 1Wire Komponenten installiert und dies wurde scheinbar in den Pfad Python 2.7 installiert oder etwa nicht?
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

"Oder etwa nicht" - wissen wir nicht. War ja keiner dabei.

Fakt ist das man das schon alles schoen sauber getrennt installieren kann. Man muss dazu dann natuerlich die richtige Vorgehensweise waehlen, also zB pip3 statt nur pip, oder /usr/lib/python3.X/site-packages als Pfad fuer eine manuelle Installation usw.

Und python2 solltest du nicht anfassen, sonst funktioniert ggf. dein System nicht mehr.
BlackJack

@franz_news@web.de: Wenn Du sie für Python 2.7 installiert hast dann ja. Aber das läge dann ja an Dir. Installiere sie halt für das Python 3.x auf dem System. Auch da gäbe es nicht wirklich einen Unterschied wenn Du Python 2 nicht mehr auf dem System hättest. Ausser vielleicht das Dir beim Installieren für Python 2.7 aufgefallen wäre das Du es so nicht installieren kannst sondern für Python 3 installieren musst.

Wie hast Du denn installiert? ``pip``? Ist genau wie ``python`` für Python 2.7. Eigentlich immer, wobei ich da auch schon anderes gesehen haben, dann wird es aber wirklich verwirrend, weshalb ich ``pip`` immer als Modul mit dem Python starte für das ich installieren will, also ``<welches_python_auch_immer> -m pip …``. Man kann ja auch mehrere Python 2 oder 3 Versionen installiert haben oder PyPy, Jython, … und auf diese Weise weiss man *genau* für welche Python-Installation man das macht.
franz_news
User
Beiträge: 9
Registriert: Freitag 28. April 2017, 07:19

habe damit angefangen und wurden die Komponenten python 2.7 angezeigt


sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git

von:

https://tutorials-raspberrypi.de/raspbe ... t11-dht22/
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Python-Pakete ohne Version sind ueblicherweise Pakete der Version 2.7. Genauso ist "python" ohne alles ein Python 2.7.

Du brauchst stattdessen 3er-Versionen, zB python3-dev, python3-openssl etc. Und dann natuerlich auch "sudo python3 setup.py install".

Ob das dann klappt steht aber in den Sternen! Denn der ADA-fruit-code ist nicht notwendigerweise Python 3 kompatibel. Warum benutzt du nicht einfach Python2?
franz_news
User
Beiträge: 9
Registriert: Freitag 28. April 2017, 07:19

__deets__ hat geschrieben:Python-Pakete ohne Version sind ueblicherweise Pakete der Version 2.7. Genauso ist "python" ohne alles ein Python 2.7.

Du brauchst stattdessen 3er-Versionen, zB python3-dev, python3-openssl etc. Und dann natuerlich auch "sudo python3 setup.py install".

Ob das dann klappt steht aber in den Sternen! Denn der ADA-fruit-code ist nicht notwendigerweise Python 3 kompatibel. Warum benutzt du nicht einfach Python2?

Als Anfänger dachte ich dass Python 3 "zeitgemäßer" leistungsfähiger ist. Und die Notation ist leider nicht ganz identisch deswegen ist doch besser eine Version zu nutzen oder?
franz_news
User
Beiträge: 9
Registriert: Freitag 28. April 2017, 07:19

franz_news@web.de hat geschrieben:
__deets__ hat geschrieben:Python-Pakete ohne Version sind ueblicherweise Pakete der Version 2.7. Genauso ist "python" ohne alles ein Python 2.7.

Du brauchst stattdessen 3er-Versionen, zB python3-dev, python3-openssl etc. Und dann natuerlich auch "sudo python3 setup.py install".

Ob das dann klappt steht aber in den Sternen! Denn der ADA-fruit-code ist nicht notwendigerweise Python 3 kompatibel. Warum benutzt du nicht einfach Python2?

Als Anfänger dachte ich dass Python 3 "zeitgemäßer" leistungsfähiger ist. Und die Notation ist leider nicht ganz identisch deswegen ist doch besser eine Version zu nutzen oder?
Habe nun die Antwort gefunden DANKE EUCH

http://www.knight-of-pi.org/measure-tem ... 22-am2302/

Update: Python 3
Execute the following commands for the Python3-version of the Adafruit driver:


git clone https://github.com/JoBergs/Adafruit_Python_DHT
sudo apt-get install build-essential python3-dev
cd Adafruit_Python_DHT
sudo python3 setup.py install
cd ..
nezzcarth
User
Beiträge: 1631
Registriert: Samstag 16. April 2011, 12:47

franz_news@web.de hat geschrieben:Auf Raspberry sind zwei Python Versionen installiert.
Raspberry [Pi] ist das Gerät, nicht das Betriebssystem. Du meinst vermutlich Raspbian. Es gibt auch andere Linux Distributionen (und ein paar Nicht-Linux Systeme) für den Raspberry Pi. Wenn du unbedingt Python 3 als Standard haben möchtest, wäre Arch Linux eine Option, das ist aber für Einsteiger deutlich weniger geeignet als Raspbian. Und eigentlich ist dein Problem, wie die anderen auch schon meinten, eine Frage der richtigen Vorgehensweise bei der Paket-Installation. Ob jetzt Python 2 oder 3 vom Betriebssystem als Standard vorgegeben wird, ist (in dem Fall) egal. Tatsächlich hat man mit Python 3 als Standardinterpreter tendenziell sogar mehr Arbeit, da Python-Code, der nicht über Betriebssystempakete kommt, öfter mal nicht so ohne Weiteres läuft.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1011
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Kann man recht bequem machen. Da Raspbian seine Wurzeln bei Debian hat, gehe ich mal von aus, dass es auch dort das Paket update-alternatives gibt.

https://linuxconfig.org/how-to-change-f ... bian-linux

Einmal eingerichtet, sieht es dann so aus:

Code: Alles auswählen

root@andre-GP70-2PE:/mnt/cd/puplic# update-alternatives --config python
Es gibt 3 Auswahlmöglichkeiten für die Alternative python (welche /usr/bin/python bereitstellen).

  Auswahl      Pfad                      Priorität Status
------------------------------------------------------------
* 0            /usr/local/bin/python3.6   3         automatischer Modus
  1            /usr/bin/python2.7         1         manueller Modus
  2            /usr/bin/python3.5         2         manueller Modus
  3            /usr/local/bin/python3.6   3         manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 
Was passieren kann, dass verschiedene Systemtools auf einmal nicht mehr funktionieren.
Da viele Programmierer hinter den Symlink /usr/bin/python python2.x erwarten, kommt es zu Problemen.

Der Shebang "#!/usr/bin/env python" startet dann den Standard-Interpreter für Python, der zuvor mit update-alternatives angegeben worden ist.
Auch der Shebang '#!/usr/bin/python' würde dann den Standard-Interpreter starten. In der Regel halt Python 2.7. Unter Arch Linux ist Python3 der Standard. Komischerweise funktioniert das problemloser, als ich dachte.

Besser wäre es gewesen, wenn von vorne herein auch die Version mit angegeben würde, wenn der Entwickler weiß, dass sein Programm nur mit legacy Python bzw. Python kompatibel ist.

Anstatt

Code: Alles auswählen

#!/usr/bin/env python
für Python2.x

Code: Alles auswählen

#!/usr/bin/env python2
oder für Python3:

Code: Alles auswählen

#!/usr/bin/env python3
oder für Python3.5 (z.B. wegen asyncio):

Code: Alles auswählen

#!/usr/bin/env python3.5
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten