在python 2.7和python 3.2中使用$PYTHONSTARTUP

13 投票
3 回答
1408 浏览
提问于 2025-04-17 01:47

我终于开始在Linux上同时使用Python 3和Python 2.7了。

我通过一个由$PYTHONSTARTUP定义的启动脚本来设置我的Python环境。不过因为两者之间不兼容,我不能用同一个脚本来同时支持这两个版本。

有没有简单的方法,让我为Python 2.7和Python 3.2各写一个脚本呢?

3 个回答

2

为某个特定的Python版本定义一个别名。在这个别名中,根据该Python版本的需要,重新设置PYTHONSTARTUP环境变量:

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

把你的 $PYTHONSTARTUP 设置成指向一个像这样的脚本,这个脚本会检查你正在使用的 Python 版本,然后再去执行另一个启动脚本:

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
14

如果你在一些项目中使用Python 2,而在其他项目中使用Python 3,那么在切换项目时就需要更改环境变量。

或者,你可以让你的启动脚本看起来像这样:

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

然后把你的实际启动代码分成两个文件,分别是 startup2.pystartup3.py

撰写回答