Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$PYTHONSTARTUP with python 2.7 and python 3.2

I finally started using python 3 alongside python 2.7 on Linux.

I setup my python shell using a startup-script defined by $PYTHONSTARTUP. Due to incompatibilities I am unable to use the same script for both versions.

What is the easiest way to get one script for python 2.7, and another for python 3.2?

like image 973
mirk Avatar asked Sep 08 '11 11:09

mirk


3 Answers

Define an alias for one of the python versions. In the alias, reset PYTHONSTARTUP as appropriate for that python version:

alias py3='PYTHONSTARTUP=/path/to/startup.py /other/path/to/python3.2'
like image 72
Michael J. Barber Avatar answered Nov 06 '22 17:11

Michael J. Barber


If you use Python 2 for some projects and Python 3 for others, then change the environment variable when you change projects.

Or, have your startup script look like this:

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

and split your real startup code into startup2.py and startup3.py

like image 14
Ned Batchelder Avatar answered Nov 06 '22 18:11

Ned Batchelder


Set your $PYTHONSTARTUP to point to a script like this, which checks the version of Python being used, and then delegates to another startup script:

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
like image 7
unutbu Avatar answered Nov 06 '22 17:11

unutbu