centos 7 搭建python3和flask uWSGI服務詳細流程

1.建立安裝python3的安裝目錄

mkdir /usr/local/python3

2.下載python3到任意目錄(一般會放在download文件夾裏),記得加–no-check-certificate

wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

若提示:bash: wget: command not found

執行:yum install wget

3.解壓文件夾

tar -zxvf Python-3.6.2.tgz

4.安裝更新編譯的依賴文件

yum install gcc-c++

5.進入解壓後的目錄,然後輸入configure命令,prefix指定的是第一步創建的文件夾

cd Python-3.6.2
./configure --prefix=/usr/local/python3

6.繼續在解壓的文件夾下編譯與安裝

make&&make install

如果在編譯到最後出現如下報錯:

zipimport.ZipImportError: can’t decompress data; zlib not available

make: *** [install] Error 1

請執行yum install zlib-devel 安裝依賴 ,然後再重新執行上述命令。

最後安裝成功,在/usr/local/python3文件夾下會有相應的python3文件。

7.創建python3的軟鏈接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

之後我們能在任意位置直接輸入python3來調用,並且能夠使用python來調用python2

8.安裝python2的pip

yum -y install epel-release # 安裝epel擴展源 有些可能已經安裝過的,就跳過
yum -y install python-pip    
yum clean cache #清除緩存

,安裝完成後可用pip list測試下,會顯示python2下pip安裝的包

[root@azimiao python3]# pip list
backports.ssl-match-hostname (3.5.0.1)
configobj (4.7.2)
decorator (3.4.0)
......
slip (0.4.0)
slip.dbus (0.4.0)
urlgrabber (3.10)
yum-metadata-parser (1.1.4)
You are using pip version 8.1.2, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

9.安裝python3的pip

 wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zxvf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install 

10.成功之後創建軟連接

ln -s /usr/local/python3/bin/pip /usr/bin/pip3

11.之後可以通過pip3 list來測試一下,如果有報紅,可以通過

:pip3 install --upgrade pip

來升級一下pip3的版本

最後測試

[root@azimiao pip-9.0.1]# pip3 list
Package    Version
---------- -------
pip        18.1   
setuptools 28.8.0 

若使用pip安裝第三方庫時,提示確實ssl無法下載,是因爲缺少ssl模塊,則往下安裝openssl-devel並重新編譯安裝

yum install openssl-devel
cd /root/Python-3.6.2   #解壓縮的文件夾
./configure --with-ssl --prefix=/usr/local/python3
make&&make install

最終測試正常安裝庫並且正常導入。

12.使用pip3 安裝python虛擬環境

pip3 install virtualenv

安裝過程可能會報黃提示,不要管它,有提示 successful就行了。

13.新建一個需要放入項目的文件夾

mkdir /usr/local/pywebapp
cd /usr/local/pywebapp

14.進入新建的文件夾下,創建python的虛擬環境

/usr/local/python3/bin/virtualenv  -p /usr/bin/python3 venv

命令說明: /usr/local/python3/bin/virtualenv 是創建命令,/usr/bin/python3是指定python版本

完成後用ls查看下,會看得到有一個venv文件夾

[root@azimiao pywebapp]# ls
venv

15.激活或關閉虛擬環境

[root@azimiao pywebapp]# source venv/bin/activate
(venv) [root@azimiao pywebapp]# 

激活後再命令行前面會有(venv)

若需要關閉虛擬環境 執行

venv) [root@azimiao pywebapp]# deactivate
[root@azimiao pywebapp]#

注:在虛擬環境下已經不分python2python3,就是使用命令python同理,進入的是你設置的虛擬環境的python版本,pip同理

16.虛擬環境下安裝,Flask

pip install flask

17.在虛擬環境中安裝 uWSGI

pip install uwsgi

18.測試能否正常運行uWSGI

安裝後在文件夾下新建test.py的python文件,輸入以下代碼:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

使用命令

uwsgi --http :9090 --wsgi-file test.py

執行後,在瀏覽器輸入:我的ip:9090 ,既能看到hello world

若打不開網頁,多半是防火牆沒開該端口,centos 7以上的系統的防火牆都是用firewall,要麼關閉防火牆(不推薦),要麼執行以下命令開啓某端口

firewall-cmd --zone=public --add-port=80/tcp --permanent  #premanent 是永久生效
firewall-cmd --reload	#重新讀取配置

19.最後對於長期提供服務的Flask web程序,最好是將配置文件放入配置文件中,在項目文件夾下配置config.ini文件 ,內容如下

[uwsgi]
# uwsgi 啓動時所使用的地址與端口
socket = 127.0.0.1:8001
# 指向網站目錄
chdir=/usr/local/pywebapp/myflaskwebapp
# python 啓動程序文件
wsgi-file = manage.py
# python 程序內用以啓動的 application 變量名
callable = app
# 處理器數
processes = 4
# 線程數
threads = 2
buffer-size = 32768
#狀態檢測地址
stats = 127.0.0.1:9191

20.啓動和關閉uWSGI

  • uwsgi啓動:虛擬環境下 uwsgi config.ini
  • uwsgi 關閉:虛擬環境下 killall -9 uwsgi
  • 查看 uwsgi 進程: ps -ef | grep uwsgi

一般情況下,需要將服務後臺運行,則需要使用nohup命令:

nohup uwsgi config.ini &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章