2011-09-08 20 views
12

Ho finalmente iniziato a utilizzare python 3 insieme a python 2.7 su Linux.

Ho configurato la mia shell python utilizzando uno script di avvio definito da $ PYTHONSTARTUP. A causa di incompatibilità, non sono in grado di utilizzare lo stesso script per entrambe le versioni.

Qual è il modo più semplice per ottenere uno script per python 2.7 e un altro per python 3.2?

risposta

13

Se si utilizza Python 2 per alcuni progetti e Python 3 per altri, modificare la variabile di ambiente quando si modificano i progetti.

Oppure, avere la vostra partenza aspetto script come questo:

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

e dividere il codice di avvio reale in startup2.py e startup3.py

+0

Sono andato per l'opzione startup-script e ho scritto qualcosa di simile al tuo codice. Ho scelto questa risposta perché è stata la prima a suggerire questa soluzione. – mirk

+1

'AttributeError: l'oggetto 'module' non ha attributo 'versioninfo''. Dovrebbe essere 'version_info'. – 2rs2ts

7

Impostare il $ PYTHONSTARTUP per puntare a uno script come questo, che controlla il versione di Python in uso e quindi delega a un altro script di avvio:

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

Definire un alias per uno dei p versioni di ython. Nell'alias, reimposta PYTHONSTARTUP come appropriato per quella versione python:

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