2011-09-08 4 views
12

J'ai finalement commencé à utiliser python 3 avec python 2.7 sous Linux.

Je configure mon shell python à l'aide d'un script de démarrage défini par $ PYTHONSTARTUP. En raison d'incompatibilités, je ne peux pas utiliser le même script pour les deux versions.

Quel est le moyen le plus simple d'obtenir un script pour python 2.7, et un autre pour python 3.2?

Répondre

13

Si vous utilisez Python 2 pour certains projets et Python 3 pour d'autres, modifiez la variable d'environnement lorsque vous modifiez des projets.

Ou, demandez à votre look script de démarrage comme ceci:

import sys 
if sys.version_info[0] == 2: 
    import startup2 
else: 
    import startup3 

et diviser votre vrai code de démarrage dans startup2.py et startup3.py

+0

J'ai choisi l'option startup-script et j'ai écrit quelque chose de similaire à votre code. J'ai choisi cette réponse parce qu'elle était la première à suggérer cette solution. – mirk

+1

'AttributeError: l'objet 'module' n'a pas d'attribut 'versioninfo''. C'est supposé être 'version_info'. – 2rs2ts

7

Définissez votre PYTHONSTARTUP $ pour pointer vers un script comme celui-ci, qui vérifie la version de Python utilisée, puis délègue à un autre script de démarrage:

import sys 
if sys.version_info[0]==2: 
    from startup2k import * 
elif sys.version_info[0]==3: 
    from startup3k import * 
else: 
    # logging.warn('Unsupported version of Python') 
    pass 
1

Définir un alias pour l'un des p versions ython. Dans l'alias, réinitialisez PYTHONSTARTUP comme approprié pour cette version python:

alias py3='PYTHONSTARTUP=/path/to/startup.py /other/path/to/python3.2'