从开始接触Python就一直使用2.7.x版本,后来想转到Python3.x版本,但是python2和python3版本不好切换就依然使用python2。
python2.7最2.x的最后一个大版本,并且不会再对2.7增加新特性,官方也建议转到3.x版本。所以就先写兼容python2和python3的脚本。之前测试的时候比较麻烦了,需要先到python2目录下运行,再到python3目录下运行。后面经过一段折腾终于可以方便的切换两个版本了。
python 启动器
python官方发布了一个python启动器,可以很方便的使用特定的python版本执行脚本。
该启动器被包含在python3.4及以后的安装包中。
先看使用帮助
C:\Users\my>py -h
Python Launcher for Windows Version 3.6.1150.1013
usage: py [ launcher-arguments ] [ python-arguments ] script [ script-arguments ]
Launcher arguments:
-2 : Launch the latest Python 2.x version
-3 : Launch the latest Python 3.x version
-X.Y : Launch the specified Python version
-X.Y-32: Launch the specified 32bit Python version
py -2 test.py
py -3 test.py
这个启动器确实很好用,但是有以下弊端:
对于双击执行的.py文件无效
对于path环境变量里的.py文件不能直接使用文件名
bat脚本
python脚本查找python的步骤:
查找PATH环境变量里的python
查看PY_PYTHON环境变量的值
基于上面的查找步骤,只需要修改PATH或PY_PYTHON环境变量就可以了。
这里我写了2个bat脚本,然后将它们的目录放入PATH变量中,方便随时调用。
setpy2.bat
@echo off
set pypath=D:\tools\Python27
set path=%pypath%;%pypath%\Scripts;%path%
set PY_PYTHON=2
rem 永久保存版本
setx PY_PYTHON 2
setpy2.bat
@echo off
set pypath=D:\tools\Python36
set path=%pypath%;%pypath%\Scripts;%path%
rem 设置py版本
set PY_PYTHON=3
rem 永久保存版本
setx PY_PYTHON 3
测试脚本
#!/usr/bin/env python
import sys
print(sys.version)
使用方式
setpy2
test.py
setpy3
test.py
上面的脚本只永久保存PY_PYTHON环境变量,而不永久保存PATH变量,所以将PATH环境变量中的python目录移除掉才能保证双击.py脚本时使用特定的python版本来执行。