歡迎光臨
每天分享高質量文章

Python 環境搭建以及神器推薦,果斷收藏!

導讀:今天給大家講一下如何搭建一個舒適的 Python 環境,包括本地環境和遠端除錯環境,然後再附送給大家兩套好用的 Python Web 框架。在這個過程中,還穿插著介紹一些適合於初學者的神器,希望大家中意~

作者:李大狗

來源:優達學城Udacity(ID:youdaxue)

搭建 Python 環境對於初學者來說,有時候還挺費勁。因此,我把 Python 環境搭建中的五項基礎技能整合在這一篇文章裡啦:

  • 如何安裝 Python

  • 如何安裝及使用 Pip

  • Pycharm 本地怎麼配置

  • Pycharm 如何配置遠端除錯環境

  • 怎麼在伺服器上搭一個以 Python 為後端核心的網站

01 安裝 Python

第一步,當然是安裝 Python 啦。

1. Mac 系統

Mac 系統預設是安裝了 Python2.7 的。我們如何另外安裝一個 Python3 呢? 首先,推薦你安裝神器 HomeBrew 作為命令列下的管理軟體。

HomeBrew 的安裝方法:

  1. ruby -e "$(wget -O- https://raw.github.com/Homebrew/linuxbrew/go/install)"

安裝完畢後使用 brew help 命令即可檢視brew的各種用法啦。

現在我們只要使用這條命令: brew install python3 ,即能輕鬆安裝上 python3 了。

然後我們使用 brew info python2 或者 brew info python3 就能檢視 Python 2/3 的具體資訊,媽媽再也不用擔心我找不到 Python 的位置了!

最後,使用 brew list 可以檢視目前所有透過 brew 安裝的命令列工具,其它的用法就透過 brew help 自行查閱吧。

2. Ubuntu 系統

Ubuntu 系統使用的是則預設的包管理工具 apt 。使用如下命令即可安裝 python :

  1. apt install python2 #安裝python2

  2. apt install python3 #安裝python3

然後,在 Ubuntu 下有兩點是需要註意的。 一個是 Python 的定位,我們用 whereis 命令來檢視其所在的檔案夾:

  1. whereis python

另一個是 Pip 的安裝。Pip 是 Python 的包管理外掛。

首先安裝 setuptools :

wget –no-check-certificate 

https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install

然後給 Python3 安裝 pip:

wget –no-check-certificate 

https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb 

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

python3 setup.py build

python3 setup.py install

然後輸入 pip3,如果有正常傳回,那麼大功告成!

3. Python2/3 輕鬆分離

有時候我們只想使用 Python3,但是 Python2 會幹擾到,那麼怎麼解決呢? 很簡單,在要用 Python3 的時候不是輸入 Python 而是輸入 Python3,在使用 Python3 的 pip 的時候不是輸入 pip 而是輸入 pip3。 例如,給 Python3 安裝 Flask :

  1. pip3 install Flask

02 Pycharm 神器管理本地環境

然後,噹噹,就是我們第二個神器登場啦,就是大名鼎鼎的 Pycharm 程式碼編輯器。

https://www.jetbrains.com/pycharm/

Pycharm 分為社群版(免費)和專業版(付費),二者最大的區別就是付費版本的 Pycharm 支援遠端除錯。

1. 建立新專案

我們來建立一個新專案。

主要的引數有兩個,一個是 Location ,專案的地址。 第二個是 Project Interpreter 專案直譯器,也就是你要使用哪個 Python 。如果選擇 New environment using 呢,就是新建一個虛擬環境,和本機安裝的 Python 互不幹擾。如果選擇 Existing Interpreter,則是使用本機的現有環境。

如果本機安裝的 Python 沒顯示怎麼辦?那麼點選最後邊的省略號,選擇 System Interpreter,再點選一次省略號,就能添加了。

然後我們找到 Python 的所在位置,新增即可。如何找到 Python 位置?請見第一部分。

2. 改變已有專案的環境

如果一開始配置錯了,那麼該怎麼辦呢? 點選 Pycharm > Preference > Project > Project Interpreter設定即可。


3. Pycharm 中包的安裝

在 Pycharm 中,安裝 Python 的包有兩種方法,一種方法是在剛才的 Project Interpreter 介面裡,使用加減號進行包的安裝與解除安裝。

在安裝一兩個包的情況下,這種方法是一種簡便的方法。那麼如果是很多的包呢?這種時候我們就要用到 pip 了。

一般而言,github 中規範的 python 原始碼會提供一個叫 requirements.txt 的檔案,檔案裡記錄的是要安裝的包的名稱以及版本。

然後我們開啟 Pycharm 裡的終端視窗:

只要到 requirements.txt 所在的目錄下,使用 pip3 install-r requirements.txt 命令,就能在當前的 python 環境中匯入所有需要的包啦,很方便。

那麼,我們在做專案的時候,如何生成 requirements.txt 以供自己和他人使用呢?同樣是一行命令就能搞定的事:pip freeze>requirements.txt 。

怎麼樣,你 get 了嗎?

03 Pycharm 輕鬆實現遠端除錯

某些時候,我們會涉及到在伺服器上執行 Python 程式,那麼我們就需要對 Pycharm 做一些配置。

註意,只有 Pycharm Pro 支援遠端除錯。

1. 配置遠端連線

首先,假定我們手頭有一臺伺服器,並有伺服器的賬號和密碼。


然後開啟Tools > Deployment > Configuration > new

如下內容是要我們填寫的:

  • SFTP host:伺服器地址

  • Port:埠,預設22,一般不用改它。

  • Root path:在伺服器上的路徑。

  • User name:伺服器上的使用者名稱

  • Password:伺服器上的密碼

再點選Mapping:

  • Local path:對映到伺服器上對應位置的本機地址

  • Deploy path:伺服器上的檔案夾位置。Root path + Deploy path 就是伺服器上我們檔案所在的完整路徑。

配置完成後,點選Tools > Browse Remote Host,右側出現我們伺服器上的檔案,就說明遠端連線成功了!

2. 新增遠端 Python 直譯器

接下來我們新增遠端 Python 直譯器,就能在本地「遙控」遠端的伺服器執行我們的 Python 程式了。 點選 Pycharm > Preference > Project > Project Interpreter > SSH Interpreter 輸入 地址、使用者名稱、密碼三件套。

Alright,試著在伺服器上執行 Hello World 吧!

04 Python Web 環境搭建

這裡是本文的重頭戲了——如何用 Python 在伺服器上搭建一個網站。 這裡推薦 Python-Flask + Nginx + Gunicorn +Supervisor + Sqlite 的方案,因為這幾個軟體都對新手非常友好。其中 Python-Flask 是後端核心,Nginx 是前端伺服器,Gunicorn 是後端伺服器,Supervisor 是行程監控軟體,Sqlite 是輕型資料庫。

1. 配置 Python-Flask 框架

首先,我們 git clone 一個Python框架。

無資料庫的 Flask 框架:

https://github.com/albertschr/MixinEOSPlayer/tree/master/Python/FlaskSketchNosql

有資料庫的 Flask 框架:

https://github.com/albertschr/MixinEOSPlayer/tree/master/Python/Flask_Sketch

然後先在伺服器上安裝必要的 Python 包:

  1. pip install -r requirements.txt

接著測試一下框架是否能正常執行:

  1. python3 run.py

如果顯示`Running on http://127.0.0.1:5000 表示框架執行正常。

2. 安裝 Nginx、Gunicorn 與 Supervisor

在伺服器上執行:

  1. apt install nginx

  2. pip3 install gunicorn

  3. pip3 install supervisor

3. 修改 nginx 的配置檔案

nginx 的配置檔案在 /etc/nginx/sites-available 目錄下,default 檔案。

  1. server {

  2.        listen 80;

  3.        listen [::]:80;

  4.        server_name example.com;

  5.        root /home/git;

  6.        index index.html;

  7.        location / {

  8.                try_files $uri $uri/ =404;

  9.        }

  10. }

我們要做以下兩件事:

  • 修改 root 為我們前端檔案所在的目錄。

  • 在 location 中新增一行 expires-1; ,以讓頁面能即時掃清。

4. 配置 supervisor

在你喜歡的目錄下生成 supervisor.conf 檔案:

  1. echo_supervisord_conf > supervisor.conf   # 生成 supervisor 預設配置檔案

開啟配置檔案:

  1. nano supervisor.conf

在底部新增:

  1. [program: [專案名稱] ]

  2. command=gunicorn -w4 -b0.0.0.0:1234 run:app                                          ; supervisor啟動命令,檔案叫run.py,run.py裡面執行的類叫app。

  3. directory=[專案目錄]                                                ; 專案的檔案夾路徑

  4. startsecs=0                                                                             ; 啟動時間

  5. stopwaitsecs=0                                                                          ; 終止等待時間

  6. autostart=false                                                                         ; 是否自動啟動

  7. autorestart = true   ; 程式異常退出後自動重啟

  8. startretries = 3     ; 啟動失敗自動重試次數,預設是 3

  9. stdout_logfile=[日誌目錄]/gunicorn.log

  10. stderr_logfile=[日誌目錄]/gunicorn.err

把上面的專案名稱、專案目錄、日誌目錄改成自己的即可。

5. 修改run.py

把 run.py 從本地執行改為伺服器上執行。 把 app.run那行註釋掉,新增以下程式碼:

  1. if __name__ == '_main_':

  2.    app.run(host="0.0.0.0",debug=True)

  3. #無需填寫埠,因為gunicorn中已經填了

萬事Okay。執行下麵命令,你的後端伺服器就執行起來啦!

  1. supervisorctl -c supervisor.conf reload

  2. supervisorctl -c supervisor.conf start all

6. supervisor的用法

  1. supervisord -c supervisor.conf                             透過配置檔案啟動supervisor

  2. supervisorctl -c supervisor.conf status                    察看supervisor的狀態

  3. supervisorctl -c supervisor.conf reload                    重新載入 配置檔案

  4. supervisorctl -c supervisor.conf start [all]|[appname]     啟動指定/所有 supervisor管理的程式行程

  5. supervisorctl -c supervisor.conf stop [all]|[appname]      關閉指定/所有 supervisor管理的程式行程


7. supervisor 的小 bug

有時候,因為伺服器重啟等原因 supervisor會出現一個 error :

  1. error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 228  

這時候,執行以下兩個命令:

  1. sudo supervisord -c /etc/supervisor/supervisord.conf  

  2. sudo supervisorctl -c /etc/supervisor/supervisord.conf  

再執行:

  1. supervisorctl -c supervisor.conf reload  

就能解決。

最後,祝大家學得開心順利!記得多關註我們哦!

更多精彩


在公眾號後臺對話方塊輸入以下關鍵詞

檢視更多優質內容!


PPT | 報告 | 讀書 | 書單 | 乾貨

Python | 機器學習 | 深度學習 | 神經網路

區塊鏈 | 揭秘 | 高考 | 福利

猜你想看

Q: 這款神器,你搞定了嗎

歡迎留言與大家分享

覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:baiyu@hzbook.com

更多精彩,請在後臺點選“歷史文章”檢視

贊(0)

分享創造快樂