Python2.7 sera-t-il disponible pour 10.04 à l'avenir?


27

Étant donné qu'Ubuntu 10.04 est une version LTS, prendra-t-il en charge python 2.7 comme version par défaut du responsable du package ou au moins aura-t-il un package python2.7 à l'avenir?

Comme il s'agira de la dernière version majeure de python 2.x et qu'elle est destinée à rester en place pendant longtemps, j'ai décidé de l'utiliser. Je l'ai compilé à partir de la source (après avoir construit des dépôts bien sûr) mais de temps en temps je trouve de petits problèmes.

Est-il sûr de définir mon python 2.7 compilé comme valeur par défaut, car il existe des applications de distribution qui fonctionnent sur python.

Réponses:


16

Non, il n'est pas considéré comme sûr de définir 2.7 comme votre interprète Python par défaut dans Lucid . Et je ne pense pas que ce sera à l'avenir.

  • Il n'y a aucune mise à niveau de version majeure d'un logiciel dans une seule version.

    Ainsi, python2.7 ne remplacera pas 2.6 comme interpréteur par défaut. Ce type de mise à niveau se fait uniquement entre les versions, au sein d'une seule - en particulier un LTS - il n'y a que des mises à niveau stables, c'est-à-dire des corrections de bugs et des mises à niveau liées à la sécurité.

Cependant, il est parfaitement sûr d'utiliser python2.7, en définissant votre interpréteur #!/usr/bin/python2.7et en demandant aux utilisateurs de l'installer en utilisant make altinstallsur la source python, aux côtés de python2.6


41

Nous avons eu le même problème avec un VPS qui ne peut pas être mis à niveau vers Maverick (même les nouvelles images LTS ne sont pas toujours disponibles à temps). La réponse de Marius a fait l'affaire pour me lancer, mais elle devrait être développée:

Ajoutez le PPA à vos sources

Si vous êtes dans ma situation, le simple conseil de courir add-apt-repositoryne fonctionnera pas pour vous. Alors faisons-le à l'ancienne:

  1. Ouvrez le fichier /etc/apt/sources.list(vous avez besoin des privilèges root; si vous êtes sur le shell, cela signifie probablement courir sudo vim /etc/apt/sources.list).

  2. Allez jusqu'au bas du fichier (si vous utilisez vim, passez en mode insertion en appuyant sur i) et ajoutez les lignes suivantes:

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    
  3. Enregistrez et quittez (dans vim: type :wq) et revenez à un shell.

  4. Entrez les informations suivantes (vous pouvez trouver la bonne clé sur le PPA ; c'est la partie après la barre oblique dans les "détails techniques" - assurez-vous que vous avez obtenu la bonne):

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
  5. Saisissez maintenant les informations suivantes pour mettre à jour votre liste de sources:

    sudo apt-get update

Installer et configurer Python 2.7

  1. Ouvrez un shell sur votre serveur et entrez les informations suivantes:

    sudo apt-get install python2.7 python2.7-dev
  2. Pour easy_installtravailler, obtenez le distributescript bootscrap:

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
    
  3. Enfin, vous voulez pipet virtualenvtravaillez si vous prévoyez de faire quelque chose de sérieux:

    easy_install-2.7 pip
    pip-2.7 install virtualenv
    

Configuration d'un virtualenv

  1. Créez le dossier de votre nouvel environnement et ouvrez-le:

    mkdir my_env && cd my_env
  2. Créez l'environnement virtuel lui-même (le point indique que le répertoire actuel est l'emplacement de l'environnement, remplacez-le par le chemin correct si vous avez sauté l'étape précédente):

    virtualenv --no-site-packages --python=python2.7 .
  3. Activez l'environnement. Vous remarquerez que l'invite du shell change pour refléter l'environnement actif:

    source bin/activate
  4. Quoi que vous fassiez dans ce shell maintenant, vous utiliserez les scripts dans le bindossier de l'environnement virtuel et les packages Python de cet environnement. Gardez à l'esprit que l'option --no-site-packagessignifie que vous commencez avec l'ensemble minimal de packages (y compris pip, cependant), vous devez donc installer tous les packages dont vous aurez besoin.

  5. Lorsque vous avez terminé, désactivez l'environnement (il s'agit d'une commande reconnue par l'environnement actif):

    deactivate

Vous pouvez également installer des packages dans l'environnement virtuel en passant l' -Eoption à pip(par exemple, pip install some-package -E /path/to/virtual/environmentpour installer some-packagedans l'environnement virtuel sur le chemin donné). Gardez à l'esprit que vous aurez plusieurs versions différentes de pipcorrespondant aux différentes versions de Python installées.

C'est une bonne idée à utiliser pip-2.7si vous souhaitez installer des packages pour Python 2.7 lorsque vous travaillez en dehors d'un environnement virtuel (l' --python=python2.7option que nous avons passée virtualenvsignifie que l'environnement virtuel utilisera les versions Python 2.7 des outils qu'il fournit, vous n'avez donc pas à vous inquiétez pas).


1
Dans mon cas, j'avais déjà installé pip pour 2.6, et j'ai dû easy_install-2.7 -U pipforcer l'installation de la version 2.7. Mais merci, c'est d'une grande aide!
Gabe Moothart

2
Pour l'étape 2 sous "Installer et configurer Python 2.7", je devais le faire wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7. Et puis pour obtenir pip sudo python2.7 -m easy_install pipsuivi par sudo python2.7 -m easy_install --upgrade pip. L'option --no-check-certificate était nécessaire pour éviter une plainte de wget concernant le certificat SSL. (Voir pypi.python.org/pypi/setuptools#unix-wget )
zlovelady


2

Cela a résolu toutes sortes de problèmes que j'avais /programming/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-modu .

libpython2.7.so.1.0Est maintenant lié à mon python2.7, etc., tout semble être plus heureux.

La dernière pièce dont j'avais besoin pour comprendre était l' mod_wsgiinstallation. Si vous émettez simplement:

$ apt-get install libapache2-mod-wsgi

Ensuite, cela sera compilé pour Python2.6 :(

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

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

J'ai donc suivi les instructions fournies par Gork-Zope ici .

J'ai enfin un serveur qui fonctionne. Merci.


1

je ne le pense pas, car il devra modifier de nombreux programmes et bibliothèques associés à la version 10.04. En fait, une grande partie du travail dans Ubuntu est réalisée à l'aide d'une version spécifique de python. Le changer en python changerait beaucoup de fichiers système.

Pour 10.10, il est disponible à partir de synaptic / aptitude simplement en installant python2.7 (vous pouvez également installer 3 et 3.1) mais pour 10.04 il n'y a aucun travail pour le faire pour 10.04.

10.10 a python 2.6 par défaut. Désolé si la réponse n'était pas positive mais je voulais juste vous donner une idée des changements.

EDIT - Changement de Python 2.7 en Python 2.6 par défaut car il a été revérifié à partir des commentaires ci-dessous. Merci.


Je viens de vérifier 10.10 dans la boîte virtuelle, il a python 2.6.6 par défaut, bien qu'il y ait 2,7 packages disponibles pour maverick. Je pense que son 11.04 qui l'a par défaut. Je continue généralement à mettre à jour et à changer les distributions, mais j'envisageais de m'en tenir au 10.04, pour son support à long terme et mes personnalisations.
crodjer

oui, 11.04 a 2,7 par défaut depuis quelques jours
Stefano Palazzo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.