Frage:
Benötigen wir mehrere Versionen von Python?
SteveIrwin
2012-10-10 03:06:10 UTC
view on stackexchange narkive permalink

Ich bin neu in Linux und sehe in meinem installierten Ordner vier verschiedene Python-Ordner in der Verzeichnisliste.

pythonpython2.7python3python3.2

Benötigen wir alle vier Versionen oder sollte ich die anderen entfernen und nur die neuesten behalten?

Werden ältere Versionen auch nicht automatisch entfernt, wenn neuere Versionen wie in Windows installiert werden?

Welche Distribution und wie ist der Weg? Einige Anwendungen hängen immer noch von "python2.7" ab. Seien Sie also vorsichtig, wenn Sie dies löschen.
Ich benutze Debian und der Pfad ist / etc.
`/ etc` ist nicht der Installationspfad für Anwendungen. Hier wird die Konfiguration gespeichert. Leg dich nicht mit dem Zeug an.
Ein Grund für die mehreren Versionen ist, dass Version 3 einige nicht abwärtskompatible Änderungen eingeführt und einige vorhandene Funktionen beschädigt hat.
Ich möchte es entfernen, da es viel Platz auf den SD-Karten und Backups beansprucht. Eines Tages werde ich ein Opfersystem einrichten und es entfernen, um den Unterschied in der Raumnutzung zu erkennen und festzustellen, ob es irgendetwas kaputt macht oder nicht.
@SDsolar Es macht Sachen kaputt; Sie können sehen, was passiert, indem Sie "aptitude" ausführen und eine (simulierte!) Löschung durchführen, indem Sie "python" suchen und "-`" drücken.
Vier antworten:
#1
+8
scruss
2012-10-10 05:03:12 UTC
view on stackexchange narkive permalink

Wenn Sie in / usr / bin nachsehen, sind tatsächlich nur zwei Versionen installiert:

  $ ls -la / usr / bin / python * lrwxrwxrwx 1 root root 9 Jun 5 23:08 / usr / bin / python -> python2.7-rwxr-xr-x 1 root root 2679344 6. Mai 19:31 /usr/bin/python2.7lrwxrwxrwx 1 root root 9 Aug 2 18: 04 / usr / bin / python3 -> python3.2lrwxrwxrwx 1 root root 11 Jul 6 09:52 /usr/bin/python3.2 -> python3.2mu-rwxr-xr-x 1 root root 2612900 Jul 6 09:52 / usr / bin / python3.2mulrwxrwxrwx 1 root root 11 Aug 2 18:04 / usr / bin / python3mu -> python3.2mu  

Die am Anfang mit l gekennzeichneten Einträge sind Links; Sie sind nur Zeiger auf ausführbare Dateien.

Wie bereits gesagt, benötigen Sie beide Versionen und müssen sich nicht mit den Dingen darin herumschlagen ...

Was ist das `mu` auf` python3.2mu`?
@AlexChamberlain - Laut [pep-3149] (http://www.python.org/dev/peps/pep-3149/) zeigt das "m", dass es mit dem "--with-pymalloc" -Flag kompiliert wurde, während Das "u" zeigt an, dass es mit dem Flag "--with-wide-unicode" kompiliert wurde.
@scruss - Der Vollständigkeit halber möchten Sie vielleicht erwähnen, dass die `l`-Einträge [symbolische Links] sind (http://en.wikipedia.org/wiki/Symbolic_link).
@MarkBooth, Ja, das habe ich in der ursprünglichen Antwort gesagt
Nein, ursprüngliche Antwort 10. Oktober 12 um 0:03, mein Kommentar war um 9:37 und Ihre Bearbeitung war um 11:33. Sie hätten meinen Kommentar einfach als veraltet markieren können.
#2
+3
Krzysztof Adamski
2012-10-10 11:00:54 UTC
view on stackexchange narkive permalink

Python 3 ist ein rückwärts inkompatibles Upgrade der Sprache. Wie bereits erwähnt, wurde so viel geändert, dass die meisten Programme ohne Änderungen nicht auf Python 3 funktionieren. Schlimmer noch, viele Python-Bibliotheken sind noch nicht mit Python 3 kompatibel.

Aus diesem Grund werden mindestens zwei Versionen benötigt - Legacy-Python 2.x und neues Python 3.x. Genau das haben Sie auf Debian-Systemen. Sie haben 4 verschiedene Pfade, auf denen Sie Python ausführen können:

  • python2.7 - es ist Version 2.7 von Python, die neueste Version der 2.x-Zeile.
  • python3.2 - es ist Version 3.2 von Python, die neueste Version der 3.x-Zeile, die in Debian verfügbar ist (3.3 ist noch nicht verfügbar).
Python - Dies ist ein Standard-Python-Interpreter. Es ist ein symbolischer Link zu einer Version, die als Standardversion gilt. Derzeit - in Debian - ist es immer noch Python 2, daher zeigt es auf 2.7.
  • python3 - es ist der aktuellste Python 3-Interpreter, der in Debian verfügbar ist. Derzeit ist eine Verknüpfung zu einer 3.2-Version des Interpreters vorhanden.
  • h3> Schlussfolgerung

    Viele Pakete hängen von Python 2.x ab, daher sollten Sie es nicht entfernen. Möglicherweise gibt es einige Pakete, die von Python 3.x abhängen, sodass Sie dieses wahrscheinlich auch nicht entfernen möchten.

    Ich weiß, dass dies für Python 2.7 zutrifft, aber mir ist nichts bekannt, was fehlschlägt, wenn Python 3 entfernt wird. Ich spüre ein Experiment. Es wäre schön, wenn möglich kleinere vollständige Rsync-Backups zu haben.
    #3
    +2
    John La Rooy
    2012-10-10 07:27:13 UTC
    view on stackexchange narkive permalink

    Python3 ist nicht wirklich ein Upgrade von Python2. Es werden nur triviale Programme ausgeführt, ohne dass mindestens 2to3 ausgeführt wird.

    Bei geringfügigen Aktualisierungen, z. B. 2.7.2 -> 2.7.3, wird 2.7 auf die neue Version und aktualisiert der ältere wird gelöscht. Dies ist im Allgemeinen in Ordnung, da es keine rückwärts inkompatiblen Änderungen geben soll (ich werde nicht sagen, dass dies jedoch nie geschehen ist).

    Normalerweise wird zwischen den Releases nicht angezeigt, dass 3.3 zum Repository hinzugefügt wurde. Wenn es jedoch angezeigt wird und Sie ein Upgrade durchführen, bleibt 3.2 installiert, falls Sie von dieser bestimmten Version abhängig sind. Reiner Python-Code, der unter 3.2 ausgeführt wird, sollte unter 3.3 größtenteils in Ordnung sein, aber C-Bibliotheken funktionieren möglicherweise nicht, ohne neu erstellt zu werden.

    #4
      0
    SDsolar
    2017-08-17 05:48:56 UTC
    view on stackexchange narkive permalink

    Die Antwort auf den letzten Teil Ihrer Frage: "Werden ältere Versionen auch nicht automatisch entfernt, wenn neuere Versionen wie unter Windows installiert werden?"

    Die Antwort ist eine klare und nachdrückliche Nein.

    Ältere Versionen werden bei der Installation neuer Versionen nicht entfernt.

    Zu viel von unserem Software-Ökosystem wurde auf Python 2.x aufgebaut, als dass es entbehrlich wäre. Das Entfernen würde viele unserer Befehle beschädigen.

    Außerdem bietet Python 3 nur sehr wenig, was für den Python 2.7-Programmierer attraktiv ist. Wenn Sie diese Funktionen benötigen, haben Sie die Möglichkeit, Python3 zu verwenden. Wenn nicht, bleiben Leute wie ich bei Python 2.x

    Wie in den anderen Antworten erwähnt, sind sie nicht mehr wirklich dieselbe Sprache.

    Es ist wie der Unterschied zwischen Programmen, die mit Windows 98, aber unter Windows 2000 nicht funktionieren könnten. Programme, die Sie unter Win98 verwendet haben, mussten nach dem Kompilieren für 2000 erneut veröffentlicht werden ( 32 Bit). Windows 2000 hat sich auf dem Verbrauchermarkt nicht durchgesetzt, da diese Verbraucher ihre Lieblingsprodukte erneut kaufen müssten. Erst mit Windows XP haben sie es endlich geschafft, dass Programme beider Typen unter demselben Windows-Betriebssystem ausgeführt werden konnten. Wir haben das Glück, dass Microsoft aus dieser Lektion gelernt hat und dass 32-Bit- und 64-Bit-Programme auf jeder modernen Windows-Version ausgeführt werden können.

    Zurück zur Frage in Ihrem Titel: "Benötigen wir mehrere Versionen von Python?" - Es hängt davon ab, welche Software Sie verwenden möchten. Ein herausragendes Beispiel ist Flugausrüstung. Ohne Python3 wird es nicht ausgeführt.



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...