教你完整搭建Python web 環(huán)境

大家好,我是個非專業(yè)的碼農(nóng),我現(xiàn)在在一家survey單位上班。

15年開始寫程序,主要寫管理系統(tǒng)方面的網(wǎng)站。之前一直用asp.net 構(gòu)建網(wǎng)站,說是asp.net其實用到它最多的就是一個數(shù)據(jù)綁定和repeater控件了,前端用的都是現(xiàn)成的js框架。

為什么開始接觸Python?

想接觸的其他系統(tǒng)方面的東東。

目的,希望能夠在自己新買的macbook pro上工作。

我的目標 開發(fā)web \ios\android\exe 能夠在一臺電腦上進行

python 可以 滿足我 web開發(fā) exe兩者?

說了這么多廢話,下面記錄一下我這幾天的搭建python web環(huán)境的過程,順便溫故知新一下

一、系統(tǒng)準備

(1)服務(wù)器

? ? ? 我租用的某云服務(wù)器,ubuntu 系統(tǒng)剛開接觸的肯定會比較暈,像我現(xiàn)在一樣,所以上來可以安裝個圖形界面程序

? ? ? apt-get install ubuntu-desktop

? ? ? 安裝完是不是輕松多了。

(2)客戶端

? ? ?我的是17款MacBook Pro ??? 重要的是學習這個過程

二、安裝python

? ? ? 這兩個系統(tǒng)好像都自帶了。好吧。

? ? ? 蘋果沒有帶python3, ubuntu帶了3.5版本

蘋果:brew install python //請自行百度homebrew

ubuntu :apt-get install python

(1)關(guān)于兩個版本的切換

其實你只要 用 python3的時候用python3就好了?

(2)使用virtualenv

這個具體大家去了解 ??,我個人理解就是一個包,可以方便的讓你在2,3之間來回切換

安裝:pip install virtualenv

創(chuàng)建: virutualenv -p python3 python3env //如果系統(tǒng)只有一個python3 直接virtualenv python3env就可以了

我在服務(wù)器ubuntu環(huán)境中老是failed,在后面加一個 --no-setuptools,后面需要的時候再在虛擬環(huán)境中 pip install?

具體原因不清楚 有可能是版本兼容問題

激活:source python3env/bin/activate

回到主程序:deactivate

不用了直接刪除就可以了

三、選擇一款web框架

我選擇了flask?

安裝:pip install Flask

可以從網(wǎng)上找一個flask demo

git clone git@github.com:xm/xxx.git

flask框架具體怎么用,大家百度下

四、服務(wù)器配置

在這里我選擇了gunicorn and nginx and supervisor

歡迎大神介紹一下這幾個工具 ??

gunicorn 前面為什么加nginx?

nginx與guicorn的具體區(qū)別

supervisor 進程管理利器

安裝 虛擬環(huán)境下

pip install gunicorn

apt-get install nginx

pip install supervisor

//supervisor 目前支持python2 ?所以要建一個python2的虛擬環(huán)境 在該環(huán)境下安裝supervisor

(1)nginx 配置

首先編輯配置文件

這里有幾個 etc/nginx/nginx.conf ,etc/nginx/sites-available/default ,etc/nginx/sites-enabled/default

我們可以在 sites-available中建立各個項目的配置文件

具體配置根據(jù)個人情況 可以百度一下

?然后鏈接到sites-enabled中

最后被全部include到nginx.conf下

ln -s?etc/nginx/sites-available/selfdefine etc/nginx/sites-enabled/selfdefine

或直接在/etc/nginx/conf.d/下新建配置文件

查看Nginx的版本號:nginx -V

啟動Nginx:start nginx

快速停止或關(guān)閉Nginx:nginx -s stop

正常停止或關(guān)閉Nginx:nginx -s quit

配置文件修改重裝載命令:nginx -s reload #如關(guān)閉了nginx會報錯,此時先nginx

ps -ef | grep nginx #查看運行的nginx

(2)supervisor配置操控gunicorn

gunicorn啟動flask的操作非常簡單,

guincorn -w 3 yourapp:app -b 127.0.0.1:8000

3 是2*1個內(nèi)核+1 yourapp是你的py啟動文件名 app 是你里面的 app.run

這樣我們的程序就啟動了

但用supervisor更加方便

配置好后 每次

start myapp

restart myapp

stop myapp

配置方法具體我也不介紹了,自行百度吧

就是把command命令鏈接到里面?

安裝完后首先 生成myapp所需的配置文件模版

(python3env)$echo_supervisord_conf > supervisord.conf

然后修改這個配置文件(python3env)$vim supervisord.conf //也可以用nano命令

可以在配置文件最后加上以下語句用來關(guān)聯(lián)相關(guān)的配置文件[include]

files =etc/self/*.conf

這樣每次加載到時候都會加載self下到conf文件

#[program:pythonapp]

#command=%(ENV_HOME)s/flasky/py3env/bin/gunicorn -w 3 hello:app -b 127.0.0.1:8000

#stdout_logfile 為設(shè)置輸出的日志文件

保存后準備啟動:

supervisord -c supervisord.conf # 指定配置文件啟動supervisord

supervisorctl ?-c supervisord.conf //啟用控制

status start restart stop reload update //常用命令

五、上傳部署flask項目

Mac 與 服務(wù)器之間的文件傳輸

打開終端命令,輸入

sftp:username@serverip

put 客戶端文件 服務(wù)器文件

put -r 客戶端文件夾 服務(wù)器文件夾

六、開始運行

supervisorctl -c supervisors.conf

項目文件更新后,由于緩存機制可能不會立即見到效果

解決辦法:

一是nginx緩存配置 //自行百度

二是利用supervisor restart myapp

結(jié)束語

剛剛開始研究,希望大家能給出意見和建議,共同進步交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容