完美解決 Python2 和 python3 共存

劉志軍發表於2017-04-11

Python3 被越來越多的開發者所接受,同時讓人尷尬的是很多遺留的老系統依舊執行在 Python2 的環境中,因此有時你不得不同時在兩個版本中進行開發,除錯。

如何在系統中同時共存 Python2 和 Python3 是開發者不得不面對的問題,一個利好的訊息是,Anaconda 能完美解決Python2 和 Python3 的共存問題,而且在 Windows 平臺經常出現安裝依賴包(比如 MySQL-python)失敗的情況也得以解決。

Anaconda 是什麼?

Anaconda 是 Python 的一個發行版,如果把 Python 比作 Linux,那麼 Anancoda 就是 CentOS 或者 Ubuntu。它解決了Python開發者的兩大痛點。

  • 第一:提供包管理,功能類似於 pip,Windows 平臺安裝第三方包經常失敗的場景得以解決。
  • 第二:提供虛擬環境管理,功能類似於 virtualenv,解決了多版本Python並存問題。

下載 Anaconda

直接在官網下載最新版本的 www.continuum.io/downloads 安裝包, 選擇 Python3.6 版本的安裝包,下載完成後直接安裝,安裝過程選擇預設配置即可,大約需要1.8G的磁碟空間。

conda 是 Anaconda 下用於包管理和環境管理的命令列工具,是 pip 和 vitualenv 的組合。安裝成功後 conda 會預設加入到環境變數中,因此可直接在命令列視窗執行 conda 命令

如果你熟悉 virtualenv,那麼上手 conda 非常容易,不熟悉 virtulenv 的也沒關係,它提供的命令就幾個,非常簡單。我們可以利用 conda 的虛擬環境管理功能在 Python2 和 Python3 之間自由切換。

多版本切換

# 基於 python3.6 建立一個名為test_py3 的環境
conda create --name test_py3 python=3.6 

# 基於 python2.7 建立一個名為test_py2 的環境
conda create --name test_py2 python=2.7

# 啟用 test 環境
activate test_py2  # windows
source activate test_py2 # linux/mac

# 切換到python3
activate test_py3複製程式碼

更多命令,可檢視幫助 conda -h

包管理工具

conda 的包管理功能是對 pip 的一種補充,如果當前已經啟用了某個Python環境,那麼就可以在當前環境開始安裝第三方包。

# 安裝 matplotlib 
conda install matplotlib
# 檢視已安裝的包
conda list 
# 包更新
conda update matplotlib
# 刪除包
conda remove matplotlib複製程式碼

對於那些用 pip 無法安裝成功的模組你都可以嘗試用 conda 來安裝,如果用 conda 找不到相應的包,當然你繼續選擇 pip 來安裝包也是沒問題的。

提高下載速度

Anaconda 的映象地址預設在國外,用 conda 安裝包的時候會很慢,目前可用的國內映象源地址是清華大學提供的。修改 ~/.condarc (Linux/Mac) 或 C:\Users\當前使用者名稱.condarc (Windows) 配置

channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
 - defaults
show_channel_urls: true複製程式碼

除此之外,你也可以把 pip 的映象源地址也換成國內的,豆瓣源速度比較快。修改 ~/.pip/pip.conf (Linux/Mac) 或 C:\Users\當前使用者名稱\pip\pip.ini (Windows) 配置:

[global]
trusted-host =  pypi.douban.com
index-url = http://pypi.douban.com/simple複製程式碼

同步發表部落格:foofish.net/compatible-…
公眾號:Python之禪 (id:VTtalk),分享 Python 等技術乾貨

相關文章