Introduction
一個開發環境包含「程式語言執行環境」、「開發/編輯環境」、「第三方套件」。可能會存在版本或是專案上的差異,因此常見的管理工具有以下:
- Anaconda 集成式開發軟體
- PIP 套件管理工具
- Pyenv 多版本Python管理工具
- Virtualenv 虛擬環境
環境管理一直都是開發者初期很容易踩的坑,舉凡像是套件裝不起來啊,不同作業系統支援的程度不同等等的。其中,套件安裝是常出現的問題之一。在初期程式的套件安裝流程通常是: 從套件開發者的網站下載套件 -> 存在你電腦當中的某個位置
-> 在程式中手動指定套件位置在哪裡。整個流程很像我們以前從「史萊姆的第一個家」下載小遊戲的做法。但隨著版本的更新,你的電腦中可能會存放多個不同版本的相同套件,分散在各地提供不同的程式使用。
為什麼需要套件環境管理?
但是在傳統的套件管理中,會有幾個問題出現:
- 如果你的專案使用想使用與系統不同版本的話怎麼辦?
- 如果你有多個專案,每個專案都有各自需要的版本及特定的套件?
- 擔心隨便升級或修改系統自帶的 Python,會遇到一些權限上的問題?
所以,身為一個開發者來說,我們會想要讓我們的環境上可以支援不同的 Python 版本,每個專案也有用有自己的套件環境。專案環境彼此獨立,開發也不容易出現互相干擾衝突的情況。網路上有許多解決方案,以下是列出我自己比較習慣的一種環境配置的方式。我是利用 Pyenv 搭配 Virtaulenvwrapper 。
pip
pip 是一款 Python 的套件管理工具(就像 JavaScript 有 npm , Ruby 有 gem , PHP 有 Composer 一樣)。可以使用它來安裝需要的套件,而不用每一個套件都各自下載,放在專案資料夾底下。一般的安裝 python 的時候都會帶上 pip ,除非是系統自帶的才需要另外安裝。簡單來說,套件管理工具就是一個替開發者下載、保存第三方套件,在程式中可以載入使用
1 | $ pip -V # 查看 pip 的版本,及對應的 python 版本 |
對 pip 更多使用方法有興趣的話,可以參考另外一篇文章。
Virtualenv & Virtaulenvwrapper
Virtualenv 是 Python 的一種虛擬環境的套件,我們可以用它來創建獨立的python 環境。這樣的話,就可以同時建立多個虛擬環境,每個環境裡面的python 使用不同的版本,並且環境之間相互獨立。 Virtaulenvwrapper 是基於 Virtualenv 的操作工具,提供更方便操作。
1 | 安装 |
Pyenv
Pyenv 是 Python 的版本管理工具,可以在同一台電腦上安裝不同版本,並可以任意切換。
1 | ## 安裝 |
Pyenv 結合 Virtaulenvwrapper
有了 Pyenv 跟 Virtaulenvwrapper,我們就可以根據不同的專案需求針對不同的 Python 建立自己的虛擬環境。大致流程是這樣:先利用 Pyenv 安裝/切換到特定版本 -> 安裝 Virtaulenvwrapper -> 開啟虛擬環境 -> done!
1 | # 安裝/切換到特定版本 |
重複一次,就可以建立不同版本的虛擬環境了:
Reference
[1] 深入对比数据科学工具箱:Python和R之争
[2] 如何使用 Python 學習機器學習(Machine Learning)
[3] 数据科学界华山论剑:R与Python巅峰对决
[4] Django筆記 - Python的模組與套件
[5] Mac多Python版本共存,多个独立Python开发环境切换。
License
本著作由Chang Wei-Yaun (v123582)製作,
以創用CC 姓名標示-相同方式分享 3.0 Unported授權條款釋出。