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 &