2013年10月21日 星期一

在Windows上同時使用Python2和Python3

Python 3.0有較大的改版,使得有些Python 2.x的程式無法執行。
所以我們的電腦需要同時保有Python2.x和Python3.x。

對於例如linux的使用者,問題可能不會很大。
在python程式的第一行,可以指定要用哪個版本的interpreter。
例如 #!/usr/bin/python2.7 來使用 2.7 版,而 #!/usr/bin/python3.3 來使用 3.3 版。
這部份的功能不是python的,而是linux的script language的第一行都會以此語法來指定interpreter。

Windows本身是沒有這個功能的,它是靠副檔名來作判斷。
那麼,我們如果灌了Python 2.x和Python 3.x,
然後直接執行python script,哪一個 interpreter 會被使用呢?

我一直以為,後安裝的會被使用。
不過前幾天在作一個測式時,發現在Windows上,也可以作到和linux一樣的效果了。

方法是:
  1. 先安裝 Python 2.x,再安裝 Python 3.x。順序一定要對。
  2. 如果某支script要用到 Python 2.x,在第一行使用  #!/usr/bin/python2 #!/usr/bin/python #! python (#!開頭,然後後面要有 python 或 python2 即可)
  3.  如果某支script要用到 Python 3.x,在第一行使用  #!/usr/bin/python3 或  #! python3(#!開頭,然後後面要有 python3 即可)
 這樣就可以方便的在 Windows 上,指名要使用Python 2或是Python 3了。如果希望一份程式在linux上也能執行,可以建一個 python3 的link,指到想用的3.x版interpreter。

簡易的測試程式如下:
#!python
#!python3
# choose one of the above


import sys
print(sys.version_info)

沒有留言:

張貼留言