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

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)

分享創造快樂