Wird python2.7 in Zukunft für 10.04 verfügbar sein?


27

Da Ubuntu 10.04 ein LTS-Release ist, wird es Python 2.7 als Standard-Paket-Betreuer-Version unterstützen oder wird es in Zukunft mindestens ein Python2.7-Paket geben?

Da es das letzte größere Python 2.x-Release sein wird und es für eine lange Zeit bestehen bleiben soll, habe ich mich für die Verwendung entschieden. Ich habe es aus dem Quellcode kompiliert (nach dem Erstellen von Deps natürlich), aber ab und zu finde ich kleine Probleme.

Ist es sicher, mein kompiliertes Python 2.7 als Standard zu definieren, da es einige Distributionsanwendungen gibt, die mit Python arbeiten?

Antworten:


16

Nein, es wird als nicht sicher angesehen, 2.7 als Ihren Standard-Python-Interpreter in Lucid zu definieren . Und ich denke nicht, dass es in der Zukunft sein wird.

  • In einer Version gibt es keine größeren Versions-Upgrades für Software.

    Daher ersetzt python2.7 2.6 nicht als Standardinterpreter. Diese Art von Upgrade wird nur zwischen Versionen durchgeführt. Innerhalb einer - insbesondere einer LTS - gibt es nur sogenannte stabile Release-Upgrades, dh Bugfixes und sicherheitsrelevante Upgrades.

Es ist jedoch absolut sicher, python2.7 zu verwenden. Definieren Sie Ihren Interpreter als #!/usr/bin/python2.7und lassen Sie ihn von Benutzern make altinstallneben python2.6 in der Python-Quelle installieren


41

Hatte das gleiche Problem mit einem VPS, das nicht auf Maverick aktualisiert werden kann (auch die neuen LTS-Images werden nicht immer rechtzeitig zur Verfügung gestellt). Marius 'Antwort hat den Trick gemacht, um mich zum Einstieg zu bewegen, aber es sollte erweitert werden:

Fügen Sie den PPA zu Ihren Quellen hinzu

Wenn Sie in meiner Situation sind, wird der einfache Ratschlag des Laufens add-apt-repositoryfür Sie nicht funktionieren. Also machen wir das auf die altmodische Art und Weise:

  1. Öffnen Sie die Datei /etc/apt/sources.list(Sie benötigen Root-Rechte. Wenn Sie sich in der Shell befinden, bedeutet dies wahrscheinlich, dass Sie ausgeführt werden sudo vim /etc/apt/sources.list).

  2. Gehen Sie ganz zum Ende der Datei (wenn Sie verwenden vim, wechseln Sie durch Drücken von in den Einfügemodus i) und fügen Sie die folgenden Zeilen hinzu:

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
  3. Speichern und beenden Sie (in vim: type :wq) und kehren Sie zu einer Shell zurück.

  4. Geben Sie Folgendes ein (Sie finden den richtigen Schlüssel in der PPA ; es ist der Teil nach dem Schrägstrich in den "technischen Details" - stellen Sie sicher, dass Sie den richtigen haben):

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
  5. Geben Sie nun Folgendes ein, um Ihre Quellenliste zu aktualisieren:

    sudo apt-get update

Installieren und konfigurieren Sie Python 2.7

  1. Öffnen Sie eine Shell auf Ihrem Server und geben Sie Folgendes ein:

    sudo apt-get install python2.7 python2.7-dev
  2. Um easy_installarbeiten, erhalten die distributebootscrap Skript:

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
  3. Schließlich wollen pipund virtualenvarbeiten Sie, wenn Sie etwas Ernstes vorhaben:

    easy_install-2.7 pip
    pip-2.7 install virtualenv

Einrichten einer virtuellen Umgebung

  1. Erstellen Sie den Ordner für Ihre neue Umgebung und öffnen Sie ihn:

    mkdir my_env && cd my_env
  2. Erstellen Sie die virtuelle Umgebung selbst (der Punkt gibt an, dass das aktuelle Verzeichnis der Speicherort der Umgebung ist. Ersetzen Sie ihn durch den richtigen Pfad, wenn Sie den vorherigen Schritt übersprungen haben.):

    virtualenv --no-site-packages --python=python2.7 .
  3. Aktivieren Sie die Umgebung. Sie werden feststellen, dass die Änderungen der Shell-Eingabeaufforderung die aktive Umgebung widerspiegeln:

    source bin/activate
  4. Was auch immer Sie jetzt in dieser Shell tun, die Skripte im binOrdner der virtuellen Umgebung und die Python-Pakete dieser Umgebung werden verwendet. Beachten Sie, dass die Option --no-site-packagesbedeutet, dass Sie mit dem minimalen Satz von Paketen beginnen (einschließlich pipjedoch), sodass Sie alle Pakete installieren müssen, die Sie benötigen.

  5. Wenn Sie fertig sind, deaktivieren Sie die Umgebung (dies ist ein Befehl, der von der aktiven Umgebung erkannt wird):

    deactivate

Sie können Pakete auch in der virtuellen Umgebung installieren , indem Sie die -EOption an übergeben pip(z. B. pip install some-package -E /path/to/virtual/environmentum sie some-packagein der virtuellen Umgebung auf dem angegebenen Pfad zu installieren ). Denken Sie daran, dass Sie verschiedene Versionen haben pip, die den verschiedenen installierten Python-Versionen entsprechen.

Es ist eine gute Idee, pip-2.7wenn Sie Pakete für Python 2.7 außerhalb einer virtuellen Umgebung installieren möchten (die --python=python2.7Option, die wir übergeben haben, virtualenvbedeutet, dass die virtuelle Umgebung die Python 2.7-Versionen der bereitgestellten Tools verwendet, sodass Sie dies nicht tun müssen Sorgen machen).


1
In meinem Fall hatte ich pip für 2.6 bereits installiert und musste easy_install-2.7 -U pipdie Installation der 2.7-Version erzwingen. Aber danke, das ist eine große Hilfe!
Gabe Moothart

2
Für Schritt 2 unter "Python 2.7 installieren und einrichten" musste ich tun wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7. Und dann Pip sudo python2.7 -m easy_install pipgefolgt von bekommen sudo python2.7 -m easy_install --upgrade pip. Die Option --no-check-certificate war erforderlich, um eine Beschwerde von wget über das SSL-Zertifikat zu umgehen. (Siehe pypi.python.org/pypi/setuptools#unix-wget )
zlovelady


2

Dies löste alle möglichen Probleme, die ich hatte: https://stackoverflow.com/questions/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-modu .

Jetzt libpython2.7.so.1.0ist die Verknüpfung zu meinem Python2.7 usw. alles scheint glücklicher zu sein.

Das letzte Stück, das ich herausfinden musste, war die mod_wsgiInstallation. Wenn Sie einfach ausstellen:

$ apt-get install libapache2-mod-wsgi

Dann wird dies für Python2.6 kompiliert :(

$ ldd /usr/lib/apache2/modules/mod_wsgi.so

libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)

Also folgte ich den Anweisungen von Gork-Zope hier .

Ich habe endlich einen funktionierenden Server. Vielen Dank.


1

Ich glaube nicht, da es viele der mit der 10.04-Version verbundenen Programme und Bibliotheken ändern muss. Tatsächlich werden viele Arbeiten in Ubuntu mit einer bestimmten Python-Version ausgeführt. Wenn Sie es in Python ändern, werden viele Systemdateien geändert.

Für 10.10 ist es von synaptic / aptitude nur durch die Installation von python2.7 verfügbar (Sie können auch 3 und 3.1 installieren), aber für 10.04 wird keine Arbeit geleistet, um es für 10.04 herauszufinden.

10.10 hat Python 2.6 als Standard. Entschuldigung, wenn die Antwort nicht positiv war, sondern nur einen Eindruck von den Änderungen vermitteln wollte.

BEARBEITEN - Python 2.7 wurde in Python 2.6 als Standard geändert, da dies in den Kommentaren unten doppelt überprüft wurde. Vielen Dank.


Ich habe gerade 10.10 in der virtuellen Box ausgecheckt, es hat standardmäßig Python 2.6.6, obwohl 2.7-Pakete für Einzelgänger verfügbar sind. Ich denke es ist 11.04, was es als Standard hat. Im Allgemeinen aktualisiere und ändere ich weiterhin Distributionen, überlege mir jedoch, 10.04 beizubehalten, um die langfristige Unterstützung und meine Anpassungen zu gewährleisten.
Crodjer

yep, 11.04 hat seit ein paar Tagen 2.7 per default
Stefano Palazzo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.