老師用的是 Python 2,但是我覺得自己現在學的話學個新點兒的比較好,2 和 3 據說差別還挺大,所以兩個版本都裝了,自己學的時候用 3,跑老師的程式時用 2。
我的電腦是 Win 7,現在系統預設調用的是 2,如果在執行前加上“C:\python33\python.exe”就可以調用 3,但是這樣太麻煩了,我在環境變數的 path 中加入“C:\python33”也沒有效果,不知道還應該怎麼設定可以方便的進行切換?
回複內容:
好吧,我來給題主介紹個神器,virtualenv,能建立若干相互隔離的python workspace,不僅能指定python版本,連packages都能不同。
擼過幾個開源的python項目別人都推薦用這個。
How to use Python virtualenv
Use different Python version with virtualenv
Windows 上的 Python 內建啟動器 py.exe,預設安裝到系統硬碟的 system32 檔案夾裡。如果你同時安裝了 Python 2 和 Python 3,用的時候直接在終端裡輸入:
py -3
1.
virtualenv
這基本是python開發的標配,然後你就可以控制在一個目錄下用一套python環境
2.
PyScripter也是有切換python版本的功能你可以把python3裡的python.exe檔案改名為python3.exe
這樣的話2和3的執行命令能夠分開了,也就能夠實現你切換的需要了為什麼我在 Windows 上安裝的時候都是環境變數都是自動寫入的?有一個很通用的解決方案,原理詳見3. Using Python on Windows
。
python3.3或更高版本在安裝時會同時把py.exe 和 pyw.exe 運行器複製到系統目錄%SYSTEMROOT% 下。
如果你平時通過命令列運行python那麼只要執行時,輸入
py filename.py或者py -3 filename.py
Python 3.3 提供了一個新的Launcher來解決Windows上面的版本切換問題.
官方描述:
The Python launcher for Windows is a utility which aids in the location and execution of different Python versions. It allows scripts (or the command-line) to indicate a preference for a specific Python version, and will locate and execute that version. reference: 3. Using Python on Windows
簡單的說, 在安裝了Python 3.3的基礎上, 保證py在環境變數中. 從命令列調用python:
py -2.7py -3
裝兩個比如路徑
D:\python27
D:\python35
然後去手動把 python27下面的python.exe改成python2.exe
python35下面的python.exe改成python3.exe
然後你的腳本第一行就加上類似
#! D:\python27\python2.exe
這樣的一行就是調用python2
要調用python3同理我提供一個辦法 首先裝一個軟體 Enthough Canopy, 這是有一個帶有各種科學計算python庫的發行版本,諸如panda,numpy 還有各種畫圖庫都內建了很方便。
Canopy中還整合了Pyhton包的線上升級和管理系統,很是方便。由於是商業層級的,Canopy的效能和穩定性很好。也提供免費的free版本和學術版本(用於教育科研也是免費的)。
以前叫EPD,現在改名叫Canopy。Canopy是第一個將Ipython升級到2.3.0的發行版;MatPlotLib已升級到1.4.2;NumPy 1.8.1;Scipy 1.2.0. 但是它主要是追求效能和穩定性,所以不能指望所有的安裝包都是最新的。
如果你有學校郵箱的話,可以免費用商業版一年,如果沒有也無妨,免費的庫也很好用,而且題目本身問的是如何2.7和3.5同時安裝,所以免費版就夠了。canopy 是基於2.7的, 有32位和64位可選。裝好之後,會有一個dos命令列的運行表徵圖,
這時,再自行去裝python3.5版本即可,從一般命令列dos或者powershell進入就是3.5了。兩者互不影響,庫資源也都是獨立的。這應該是比較好的解決方案了。
如果老師要求的Python2是指Python2.7的話,你完全可以寫出Python2和Python3幾乎完全相容的代碼。
技巧是寫『向前相容』的代碼。 Writing Forwards Compatible Python Code
實際應用過程中不是你寫一份代碼自己跑兩遍,而是用Unit test在多個Python interpreter裡自動跑。我看了一下PyCharm是支援配置多份test,每個test對應一個interpreter的。不清楚的看一下 How to Get Started with PyCharm and Have a Productive Python IDE
這裡的Unittest章節。