1 votes

Ubuntu : Mise à jour de Scipy-stack pour Python 2.7

Je suis très frais sur linux, donc il pourrait y avoir des erreurs évidentes dans ce qui suit.

J'ai fraîchement installé la dernière version d'Ubuntu LTS hier, ainsi que pyCharm (éditeur Python). J'ai continué à mettre à jour la pile scipy en suivant la commande sur leur site web :

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

Cependant, maintenant dans pyCharm, j'observe que scipy n'est pas mis à jour. Il s'avère qu'il y a plusieurs installations de Python disponibles :

$ sudo ls /usr/bin/python*
/usr/bin/python        /usr/bin/python2-config  /usr/bin/python3m
/usr/bin/python2       /usr/bin/python3     /usr/bin/python-config
/usr/bin/python2.7     /usr/bin/python3.4       /usr/bin/pythontex
/usr/bin/python2.7-config  /usr/bin/python3.4m      /usr/bin/pythontex3

$ which python
/usr/bin/python

J'aimerais utiliser python2.7 comme ma référence principale/standard de Python, et également mettre à jour ses paquets. Comment puis-je y parvenir ?

2voto

Mufaka Points 54

Il n'y a en fait que deux installations de Python par défaut. 2.7 et 3.4 ici. Tous les python-* sont construits pour Python 2.7. Tous les python3-* sont construits pour Python 3.4.

Ce que vous remarquez avec la version de scipy n'a rien à voir avec la disposition générale de ces installations Python, il s'agit du fonctionnement d'Ubuntu . Ubuntu ne met pas à jour tous les paquets pour chaque mise à jour proposée par ses développeurs. Il ne met à jour les paquets que lorsqu'il y a des mises à jour de sécurité ou des choses qui l'améliorent radicalement. Cela assure la stabilité des développeurs qui ne veulent pas de changements d'API/ABI sur les systèmes qu'ils ont déployés.

Je soupçonne que vous ne souhaitez pas du tout utiliser le système Python d'Ubuntu, mais plutôt utiliser un système d'exploitation de type virtualenv . Ceux-ci utilisent le système python (ou python3 ) binaire mais vous possédez le reste de l'environnement ( site-packages etc). Cela vous donne une flexibilité quasi-totale pour installer n'importe quelle version de n'importe quel produit de la gamme pip sans avoir besoin d'être rooté, sans piétiner les fichiers gérés par le système.

Normalement, il s'agit de créer un virtualenv pour l'"activer" et ensuite installer vos paquets :

virtualenv /path/to/venv  # or python3 -mvenv /path/to/venv
source /path/to/venv/bin/activate
pip install -U pip  # update pip
pip install -U numpy scipy matplotlib ipython ipython-notebook pandas sympy nose

Notez que les noms de ces paquets peuvent ne pas être corrects ci-dessus, pip vous le dira.

Notez également que vous rencontrerez probablement quelques erreurs concernant des dépendances de construction manquantes. Les paquets que vous téléchargez depuis Ubuntu et qui nécessitent une compilation (la plupart de ces paquets de calcul) ont été précompilés. Vous devrez satisfaire leurs dépendances. Une façon simple de le faire est d'utiliser apt-get build-dep pour les versions Ubuntu. Si les dépendances entre les versions Ubuntu et PyPi ont dévié, vous devrez peut-être installer d'autres choses. Consultez la documentation de ce projet pour savoir ce dont vous avez besoin.

sudo apt-get build-dep python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

De manière fastidieuse, cela installera les build-deps pour Python 2 et 3 mais ce n'est que de l'espace disque, non ? :) Vous pouvez remplir les dépendances manuellement si vous préférez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X