PyCharm 配置 Python 解釋器
前面幾節我們把如何創建一個項目、以及可以為項目填充哪些元素為大家介紹完了。但還留了一個問題, 當我們在創建"Hello World" 項目時,當輸完文件名后,需要選擇解釋器 ,當時只讓大家選擇了一個系統的解釋器。那么這個解釋器到底是什么呢?這節將詳細介紹什么是解釋器?有哪些類型?這些解釋器又有什么不同?
1. 什么是解釋器?
解釋器就是幫助我們將 Python 代碼,也就是 .py 文件,交給機器可以執行的工具。
我們知道,計算機的 CPU 其實是很笨的,它只能讀懂 0 和 1 這樣的二進制編碼文件。但是我們編寫代碼的時候肯定不能使用二進制,所以就誕生了像 Python 和 Java 這樣的高級語言來輔助我們編程。但是代碼寫出來之后計算機理解不了又執行不了怎么辦?這個時候就需要有一個東西將 Python 代碼解釋成計算機可以讀懂并執行的內容,這個東西就是解釋器。
2. 支持的解釋器類型
想要在 PyCharm 中使用 Python 代碼,需要至少配置一個解釋器。要配置的時候,需要指定系統中的 Python 可執行文件的路徑。因此,在配置項目解釋器之前,需要確保已下載 Python 并安裝到系統中,并且知道其路徑。我們可以基于不同的 Python 可執行文件創建項目解釋器,也可以用同一個 Python 可執行文件創建項目解釋器。
上圖中的 Python.exe 就是 Python 的可執行文件,它存在于你的 Python 安裝路徑下面。
PyCharm 支持以下解釋器類型:
- 標準的 Python 解釋器(Python 2.7、Python 3.5-3.8);
- 其他 Python 實現(IronPython、PyPy、Jython、CPython);
- 虛擬環境:(Virtualenv, Pipenv, and Conda);
- 遠程 Python 解釋器(SSH、Vagrant、WSL(僅適用于 Windows);
- 基于 Docker 的解釋器(Docker、Docker Compose)。
Tips:后面兩種類型,僅在 PyCharm Profession 版本中支持。
3. 新項目配置解釋器
3.1 使用存在的解釋器
當創建新項目時,我們需要選擇解釋器,這時我們可以選擇已經存在的解釋器。
點擊上面的詳情按鈕,根據不同的解釋器類型,已經列出了對應存在的解釋器。
3.2 使用虛擬環境
基于存在的解釋器,可以創建新的虛擬環境。目前 PyCharm 支持三種虛擬環境,分別是Pipenv、Virtualenv 與 Conda。
3.2.1 使用 Pycharm 創建虛擬環境
PyCharm 自帶 Virtualenv 不需要單獨安裝。 它是虛擬環境中最常見的工具,也有許多文檔,可解決許多問題,所以非常適合初學者。缺點是由于其簡單性,它沒有很多功能。
點擊 “Create" 按鈕,回到主界面 (Tool Windows --> Project --> Project)
會看到項目文件夾下自動創建虛擬環境的目錄 venv, 目錄結構如下:
更多的細節請參考 Virtualenv。針對其功能的單一性,工具 virtualenvWrapper 是其擴展,有興趣的同學可以參考。
3.2.2 Pipenv
Pipenv ,全稱為 Python Development Workflow for Humans,目的是為開發項目自動創建和管理虛擬環境并管理 Python 包。它就是 virtualenv 和 pip 的集合體,通過創建指定 Python 版本的虛擬環境和安裝依賴包,提供各個項目隔離的開發環境。
Pipenv 使用 Pipfile 文件來處理安裝的所有包。 如果要在 PyCharm 里使用Pipenv 需要事先安裝。更多安裝及其它細節參考。
點擊 “Create" 按鈕, 會在項目文件夾自動創建Pipfile, 目錄結構如下:
3.2.3 Conda
在前面的章節我們提到過 Anaconda,它是一個開源的 Python 發行版本,其包含了 conda、Python 等 180 多個科學包及其依賴項。 conda 是包及其依賴項和環境的管理工具。通常只有當使用 Anaconda 時,Conda 才是合適的虛擬環境工具。在 PyCharm 里使用 Conda 需要提前安裝。因為其比較大,通常會選擇安裝 miniconda。安裝細節請參考。
點擊 “Create", 項目文件中不會創建額外的文件。
3.2.4 總結
在我們創建自己項目時,建議不要選擇系統的解釋器,而應創建項目自己的虛擬環境,保證各項目的環境獨立性。作為初學者,可以優先選擇 Virtualenv, 當對虛擬環境有更深了解以后,再選擇Pipenv。畢竟Pipenv功能更為強大,在解決依賴性問題上做得更好。
4. 修改存在項目的解釋器
有時候,我們可能需要修改存在項目的解釋器,比如項目原來是基于 Virtualenv 虛擬環境的,后來項目越來越復雜,用 Pipenv 管理包與部署環境會更為合適;再比如項目之前是依托于 Python 2.7 的環境,想要升級為 Python3.0 的環境版本。
4.1 更新本地解釋器路徑
step1:打開項目, 訪問解釋器頁面,Mac 下依次點擊:主PyCharm -> Preference -> Project:項目名 -> Python Intepreter
,Windows 和 Linux 下依次點擊:File -> Settings -> Project:項目名 ->Python Intepreter
。然后點擊右上角的齒輪按鈕:
step2:在彈出列表中,單擊"Show All…",會彈出“Project Interpreters" 對話框 。(選擇 Add 要求你創建新的解釋器)選擇 Show All 會先查看有哪些存在的解釋器,然后再決定是否創建新的。
step3:可用的解釋器出現在"Project Interpreters"對話框中,在對話框中選擇期望的解釋器。通過下面一排按鈕為當前項目增刪改解釋器。
紅框中的按鈕從上到下分別是:
- 增加新的解釋器;
- 刪除選中的解釋器;
- 編輯選中的解釋器;
- 與其他項目相關聯的環境將不顯示;
- 選中解釋器的現有路徑將顯示在解釋器路徑對話框中。
點擊上圖按鈕 4, 會顯示下圖:
點擊上圖按鈕 5, 會顯示下圖:
4.2 Vagrant (僅專業版支持)
PyCharm 支持遠程調試,對于已存在的項目可以增加遠程環境進行調試。Vagrant 是一款基于 Ruby 用于構建及配置虛擬開發環境的軟件,主要以命令行的方式運行。
使用 Oracle 的開源 VirtualBox 虛擬化系統,與 Chef,Salt,Puppet 等環境配置管理軟件搭配使用, 可以實行快速虛擬開發環境的構建。PyCharm 可以通過 Vagrant 直接訪問VirtualBox 虛擬機,所以需要提前安裝 Vagrant 與 VirtualBox, 以及 Vagrant plugin。
PyCharm 已經默認安裝了 Vagrant plugin。對于 VirtualBox 與 Vagrant, 根據自己的操作系統,從官網下載VirtualBox 與 Vagrant安裝包,然后運行安裝包,與其它軟件安裝是一樣的,根據提示點擊下一步,就能順利安裝成功。
step1:執行下面的命令, 啟動要使用的虛擬機。(Vagrant命令參考 )
# 本地已經準備好了相應BOX文件,也可直接從網上下載,但速度慢。
1. vagrant box add centos /Users/xuxh/Downloads/Vagrant-CentOS-7.box
2. vagrant init centos
3. vagrant up
step2:打開項目, 訪問解釋器頁面,然后點擊齒輪按鈕,點擊“add"。
step3:選擇左側面板“vagrant”, 指定虛擬機目錄及解釋器路徑。
4.3 Docker (僅專業版支持)
PyCharm 集成了 Docker,允許在 Docker 容器中部署的各種配置開發環境中運行應用程序。當然前提也是需要安裝 Docker 與 Docker plugin(PyCharm 已經預裝)。
Tips:關于 Docker 的使用,可以參考這里。
step1:啟動要用的 Docker 容器:
docker run python:latest mytest
step2:打開項目, 訪問解釋器頁面,然后點擊齒輪按鈕,點擊“add"。(參考前面步驟)
step3:左側面板點擊 Docker,配置 server:
step4:顯示連接成功后,會自動顯示對應 docker 服務包含的所有鏡像。
step5:選擇在步驟1運行的鏡像文件,點擊 OK:
5. 小結
本節主要針對 Python 解釋器做了詳細的闡述, 該節的重點及難點是創建虛擬環境解釋器。涉及的 Virtualenv、Pipenv 及 Conda 三種虛擬環境,除了要學習本節內容,建議去各自的官網了解更詳細的知識。在創建項目時,要優先選擇虛擬環境解釋器,這樣保證系統解釋器整潔性,也保證各個項目環境的獨立性,在項目移值與部署上都會非常方便。除此以外,本節也涉及到一些專業版才有的功能:Docker 與 Vagrant,應用與理解這些功能需要的背景知識非常多,建議感興趣的同學先閱讀文中給出的文檔鏈接。