# [python] update vers  3.1.2-r3

## bdouxx

python 3.1.2-r3 est passé en stable.

Apres avoir plusieurs fois fait planter méchamment ma gentoo apres update de paquets style gcc ou Xorg , je préfère m'assurer avant de ce qu'il faut faire et de ce qu'il ne faut pas faire...

Y a t'il une chance que j'arrive a passer de 2.6.5-r2 a 3.1.2-r3 sans tout faire planter?

Y a t'il une procedure particulier a suivre?

cela ne va t'il pas impacter tout ce qui depend de python? ou est ce moi qui rêve et cela n'est pas le python que je connais sous windows?

----------

## Tom_

Python-3 n'est pas prêt pour être utilisé au niveau du système global! Python-2.6 doit rester la version par défaut sur ton système!

Par contre, tu peux l'utiliser pour d'autres applis "individuelles".

----------

## Poussin

Si ton système est dans le même état que le mien (ou +/-) tu as ça:

```

[ebuild  NS   ] dev-lang/python-3.1.2-r3 [2.6.4-r1] USE="gdbm ipv6 ncurses readline sqlite ssl threads (wide-unicode) xml -build -doc -examples -tk -wininst" 9,558 kB

```

Tu peux voir qu'il s'agit d'un nouveau slot et non d'une mise à jour.

Par ailleurs, j'ai également ça

```

[ebuild     U ] dev-lang/python-2.6.5-r2 [2.6.4-r1] USE="gdbm ipv6 ncurses readline sqlite ssl threads (wide-unicode) xml -berkdb -build -doc -examples -tk -wininst" 10,903 kB

```

Il me met à jour la version 2  :Wink: . C'est bien le signe qu'il compte pas la jeter tout de suite :p

edit: par contre, chez moi il y a aussi un nouveau gcc  :Very Happy:  Ca sent déjà le proco qui chauffe :p

----------

## bdouxx

merci de vos réponses, j'en apprend tout les jours.

Je n'avais jamais fait attention a la signification de NS.

si les 2 slots sont installé, les 2 versions de python sont actives( il ne me semble pas en lisant le warning)? les programmes savent lequel utiliser?

je ne comprend pas ce passage: 

 * Starting Python Updater...

 * Main active version of Python:  3.1

 * Active version of Python 2:     2.6

 * Active version of Python 3:     3.1

ca me semble contredire le message:

Although Python 3.1 should not be set as main active version of Python, you should run python-updater after installation of Python 3.1.

Faut il faire quelque chose de special ou est ce normal?

```

rdi_perso ~ # emerge --update --deep --newuse --ask world

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  NS   ] dev-lang/python-3.1.2-r3 [2.6.5-r2] USE="gdbm ipv6 ncurses readline sqlite ssl threads (wide-unicode) xml -build -doc -examples -tk -wininst" 

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-lang/python-3.1.2-r3

>>> Installing (1 of 1) dev-lang/python-3.1.2-r3

>>> Jobs: 1 of 1 complete                           Load avg: 1.42, 0.83, 0.42

 * Messages for package dev-lang/python-3.1.2-r3:

 * 

 * WARNING!

 * Many Python modules have not been ported yet to Python 3.*.

 * Python 3 has not been activated and Python wrapper is still configured to use Python 2.

 * You can manually activate Python 3.1 using `eselect python set python3.1`.

 * It is recommended to currently have Python wrapper configured to use Python 2.

 * Having Python wrapper configured to use Python 3 is unsupported.

 * 

 * 

 * ************************************************************************

 * 

 * You have just upgraded from an older version of Python.

 * You should run 'python-updater ${options}' to rebuild Python modules.

 * 

 * ************************************************************************

 * 

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.

ordi_perso ~ # eselect news read                                                                                                                     

2010-03-25-python-3.1                                                                                                                                

  Title                     Python 3.1

  Author                    Arfrever Frehtes Taifersar Arahesis <Arfrever@gentoo.org>

  Posted                    2010-03-25

  Revision                  1

Python 3 is a new major version of Python and is intentionally incompatible with Python 2.

Many external modules have not been ported yet to Python 3, so Python 2 still needs to be installed.

You can benefit from having Python 3 installed without setting Python 3.1 as main active version of Python.

Currently you should not set Python 3.1 as main active version of Python.

When setting it becomes recommended, a separate news item will be created to notify users.

Although Python 3.1 should not be set as main active version of Python, you should run python-updater after installation of Python 3.1.

By default, modules that support both Python 2 and Python 3 are installed for both the active version of Python 2 and the active version of Python 3 when both Python 2 and Python 3 are installed.

It is recommended to use a UTF-8 locale to avoid potential problems.

Especially C and POSIX locales are discouraged.

If locale has not been explicitly set, then POSIX locale is used, so you should ensure that locale has been set.

Problems occurring only with non-UTF-8 locales should be reported directly to upstream developers of given packages.

See http://www.gentoo.org/doc/en/utf-8.xml for more information about UTF-8.

ordi_perso ~ # python-updater

 * Starting Python Updater...

 * Main active version of Python:  3.1

 * Active version of Python 2:     2.6

 * Active version of Python 3:     3.1

 *   Adding to list: app-admin/pessulus:0

 *   Adding to list: app-admin/webapp-config:0

 *   Adding to list: app-arch/q7z:0

 *   Adding to list: app-arch/rpm:0

 *   Adding to list: app-editors/gedit:0

 *   Adding to list: app-editors/gvim:0

 *   Adding to list: app-editors/vim:0

 *   Adding to list: app-emulation/emul-linux-x86-medialibs:0

 *   Adding to list: app-office/openoffice:0

 *   Adding to list: app-text/gnome-doc-utils:0

 *   Adding to list: dev-libs/beecrypt:0

 *   Adding to list: dev-libs/boost:1.42

 *     check: manual [Added to list manually, see CHECKS in manpage for more information.]

 *   Adding to list: dev-libs/libgamin:0

 *   Adding to list: dev-libs/libgweather:0

 *   Adding to list: dev-libs/libxslt:0

 *   Adding to list: dev-python/beaker:0

 *   Adding to list: dev-python/bug-buddy-python:0

 *   Adding to list: dev-python/gconf-python:2

... 

```

----------

## xaviermiller

Salut

La news (via eselect news read) dit qu'il ne faut pas utiliser python 3 pour le moment.

Je comprends qu'il soit en "instable", mais pourquoi le mettre en stable alors que python 3 a cassé tout : presque aucun script écrit en 2 ne passe en 3...

----------

## d2_racing

Ouais, c'est une bonne remarque, car vu que le package est slotté et qu'il n'est pas activé par eselect, je comprend pas pourquoi il est rendu en stable si on ne l'utilise pas par défaut.

----------

## Poussin

Parce que ce n'est pas parce que les scripts gentoo n'utilise pas la version 3 que cette dernière ne peut être utilisée par d'autres scripts/programmeurs/que sais-je? Elle a du être jugée assez stable pour perdre son ~, mais slottée parce que gentoo n'est pas compatible v3 pour l'instant, je présume...

----------

## bdouxx

comment ca il n'est pas activé par eselect?

si tu regardes mes logs du python-updater il est devenu le python principal:

* Starting Python Updater...

* Main active version of Python: 3.1

en plus j'ai eu plein d'emerge fail par la suite...

et une fois que j'ai redemarré mon ordi j'etais bien en 3.1  et j'ai du faire un:

eselect python set python2.6

J'ai mal fait quelque chose?certainement...

----------

## d2_racing

@bdouxx, je suis pas mal certain, car il n'est pas active par defaut.

----------

## VinzC

Bonjour tout le monde.

Permettez-moi de ressusciter ce fil: peut-on maintenant utiliser la branche 3.1 de python sous Gentoo sachant que j'ai activé le USE flag python3 avec portage? Question subsidiaire, la branche 3.2 est-elle compatible avec la 3.1?

Je pose la question car a) j'ai python 2.6.6-r2 et 2.7.1-r1 déjà installés en plus de la 3.2.2 et b) je veux installer Blender 2.5* et apparemment, il demande quelque chose comme >=python-3.2... Alors je me demandais si portage fonctionnerait aussi avec python 3.2. Ou bien est-ce vraiment un truc idiot, à ne pas faire?

----------

## guilc

Portage fonctionne avec la dernière version de python.

Perso, chez moi python 3.2 est ma version de python par défaut depuis longtemps. Les paquets qui ne fonctionnent que avec 2.7 ou inférieur sont de plus en plus rares, et quand les ebuilds en ont besoin, c'est précisé dedans, et il autosélectionne la bonne version de python (si ce n'est pas le cas, il faut ouvrir un ticket sur BGO, les devs fixent ce genre de problème !)

Chez moi : 

```
$ eselect python list

Available Python interpreters:

  [1]   python2.7

  [2]   python3.2 *
```

Mais bon, après, ce n'est pas officiellement supporté, si ça plante, a chacun de prendre ses responsabilités   :Twisted Evil: 

----------

## VinzC

 *guilc wrote:*   

> Portage fonctionne avec la dernière version de python.
> 
> Perso, chez moi python 3.2 est ma version de python par défaut depuis longtemps. Les paquets qui ne fonctionnent que avec 2.7 ou inférieur sont de plus en plus rares, et quand les ebuilds en ont besoin, c'est précisé dedans, et il autosélectionne la bonne version de python (si ce n'est pas le cas, il faut ouvrir un ticket sur BGO, les devs fixent ce genre de problème !)

 

Excellent! Merci pour l'info. Je n'ai que trois ebuilds qui n'ont pas fonctionné, MyPaint et deux autres dont un que j'ai écrit pour nfqueue-bindings. Je tâcherai de m'en sortir avec ça, ça ne devrait pas être trop difficile  :Wink:  .

----------

## xaviermiller

Hello,

Chez moi, c'est GDB qui veut absolument se compiler avec python:2, via le USE "pyton" demandé par QTCreator.

Je vais essayer de voir s'il y a moyen de brancher GDB sur Python 3 et je pourrai ainsi passer à pyhton 3 (pour le moment, j'ai masqué python 3 pour n'avoir qu'une version -- je n'aime pas les doublons slottés).

----------

## VinzC

 *XavierMiller wrote:*   

> Hello,
> 
> Chez moi, c'est GDB qui veut absolument se compiler avec python:2, via le USE "pyton" demandé par QTCreator.
> 
> Je vais essayer de voir s'il y a moyen de brancher GDB sur Python 3 et je pourrai ainsi passer à pyhton 3 (pour le moment, j'ai masqué python 3 pour n'avoir qu'une version -- je n'aime pas les doublons slottés).

 

Merci pour ces infos, Xavier. Personnellement, j'ai un peu plus de soucis que je ne l'aurais souhaité avec Python 3. Je pense que je vais faire comme toi et le laisser temporairement de côté pour le moment et me passer de Blender 2.5. Après réflexion et au vu de ce que ça m'a occasionné comme prise de tête, Je crois aussi qu'il est plus sage de ne conserver qu'une seule version.

----------

## xaviermiller

Il y a "plein" de paquets qui ne compilent pas avec python-3, et il n'y a pas de tracker sur b.g.o pour les recenser (les seuls trackers sont "intra 2.*" et "intra 3.*").

Je vais rester sagement sur python-2 pour le moment, il ne me sert à rien.

----------

## StinGer_Uesugi

 *VinzC wrote:*   

> Merci pour ces infos, Xavier. Personnellement, j'ai un peu plus de soucis que je ne l'aurais souhaité avec Python 3. Je pense que je vais faire comme toi et le laisser temporairement de côté pour le moment et me passer de Blender 2.5. Après réflexion et au vu de ce que ça m'a occasionné comme prise de tête, Je crois aussi qu'il est plus sage de ne conserver qu'une seule version.

 

Tu ne peux pas "ne conserver qu'une seule version". Python 3 est très différent de Python 2 : il ne s'agit pas d'une évolution, mais plutôt d'une révolution. Le langage n'est pas le même entre 2 et 3 (OK, c'est très proche, mais par exemple, print n'a plus la même syntaxe). Un programme en Python 2 ne fonctionnera pas avec Python et réciproquement. Donc si tu as des programmes qui nécessite le 3, il te faut le 3.

Voilà, just my 2 cents.

----------

## VinzC

 *VinzC wrote:*   

> Merci pour ces infos, Xavier. Personnellement, j'ai un peu plus de soucis que je ne l'aurais souhaité avec Python 3. Je pense que je vais faire comme toi et le laisser temporairement de côté pour le moment et me passer de Blender 2.5. Après réflexion et au vu de ce que ça m'a occasionné comme prise de tête, Je crois aussi qu'il est plus sage de ne conserver qu'une seule version.

 

 *StinGer_Uesugi wrote:*   

> Tu ne peux pas "ne conserver qu'une seule version". Python 3 est très différent de Python 2 : il ne s'agit pas d'une évolution, mais plutôt d'une révolution. Le langage n'est pas le même entre 2 et 3 (OK, c'est très proche, mais par exemple, print n'a plus la même syntaxe). Un programme en Python 2 ne fonctionnera pas avec Python et réciproquement. Donc si tu as des programmes qui nécessite le 3, il te faut le 3.
> 
> Voilà, just my 2 cents.

 

Merci beaucoup. Ce que tu me dis là est très intéressant car tu viens d'éclairer ma lanterne, à savoir que les deux peuvent — et doivent — cohabiter. Jusqu'à présent, je pensais (ou plutôt j'espérais) qu'il était possible de faire sans la version 3, point final. Par contre la question, maintenant, est: que faut-il faire après avoir installé python 3? Faut-il exécuter python-updater étant donné qu'il lancera l'installation de paquets qui ne fonctionneront pas tous avec Python3 (c'était mon cas)? Je suppose que je peux toujours laisser Python 2.6 sélectionné (avec eselect) et laisser portage dépendant de la version 2.6 jusqu'à ce que la version 3 soit officiellement *la* version recommandée, exact?

Je vais refaire des essais, maintenant que c'est un peu plus clair. Je vais de nouveau installer Python3 et réessayer d'installer Blender 2.5 sans les dépendances qui provoquent des erreurs, on verra ce que ça donne.

----------

## xaviermiller

Hello,

De mon côté, j'ai masqué python 3 (et USE="-python" en global) et rien à signaler  :Wink: 

----------

