[本文出自天外歸雲的博客園]
部署python3.6.5
騰訊雲服務器安裝python3竟然要3個多小時!而且一度速度為0……
於是網查據說是騰訊雲服務器連python官網緩慢導致的,所以想找個國內的python3.6的下載地址進行安裝,-_-||沒找到。
於是決定通過本地上傳的方法把python3傳到騰訊雲服務器上,先把python3先下載到本地然后傳到騰訊雲上就可以了。
首先要下載一個winscp到本地,安裝並啟動winscp。
填寫騰訊雲的ip、端口(默認是22)、登錄服務器的用戶名和密碼完成winscp對linux服務器的登錄,至此就可以在本地看到在騰訊雲上的文件目錄了。
把本地的python3.6拖拽到winscp里就可以完成上傳:
之后就可以在騰訊雲服務器的根目錄下看到剛剛上傳的python3.6文件了,先解壓縮一下:
tar -zxvf Python-3.6.5.tgz
至此這就把python3.6.5傳到騰訊雲服務器上了:
接下來還要安裝python3.6.5,首先創建一個python3文件夾,執行以下命令:
mkdir /usr/local/python3
在根目錄下進入解壓后的python3.6.5目錄:
cd Python-3.6.5
執行配置命令:
./configure --prefix=/usr/local/python3
我的騰訊雲服務器是centos系統,執行以上命令遇到了如下報錯:
error: no acceptable C compiler found in $PATH
原因是需要先安裝gcc,執行以下命令安裝gcc:
yum install gcc
然后再執行配置命令就可以了。
然后安裝python3,在python3.6.5解壓后的目錄下執行:
make make install
編輯配置文件:
vi /etc/profile
進入編輯模式:
i
在 export PATH 之前加上:
PATH=/usr/local/python3/bin:$PATH
按esc保存修改並退出:
:wq
執行以下命令使配置生效:
source /etc/profile
至此python3.6.5安裝完畢:
安裝setuptools
根目錄下執行命令下載並解壓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
在解壓后的setuptools目錄下進行安裝:
cd setuptools-19.6.tar.gz python3 setup.py build python3 setup.py install
報錯提示RuntimeError: Compression requires the (missing) zlib module,執行命令:
yum install zlib yum install zlib-devel
然后去python3.6.5解壓包目錄下執行命令:
make make install
然后再回到setuptools目錄下執行命令:
python3 setup.py install
至此setuptools安裝好了。
安裝pip
在根目錄下執行命令下載並解壓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
在pip解壓后的目錄下安裝pip:
cd pip-8.0.2 python3 setup.py build python3 setup.py install
然后我們在/usr/local/python3/bin目錄下就可以看到已經成功安裝了pip。
但是用pip安裝django又報錯了,提示cannot import name HTTPSHandler,執行以下命令:
yum install openssl yum install openssl-devel
然后重新編譯安裝python:
cd /usr/local/Python-3.6.5 make make install
至此需要再重新安裝一下pip:
cd ~/pip-8.0.2 python3 setup.py build python3 setup.py install
至此pip安裝完成。
安裝更多依賴庫
把本地python3環境安裝的依賴庫導入到requirements.txt:
pip freeze > requirements.txt
然后用winscp把這個文件傳到騰訊雲並安裝:
pip install -r requirements.txt
依賴庫默認走的騰訊雲鏡像,所以下載安裝會很快。
如果遇到了哪個庫安裝失敗了,vi編輯requirements.txt文件,在安裝失敗的python庫所在行雙擊d刪除該行,並把之前的行也都dd刪除了,按esc輸入:wq保存並退出編輯。
然后再通過以上命令安裝requirements.txt文件中剩下的python庫即可。
注意:如果安裝sqlite3的python庫成功后依然引入失敗,需要重新編譯安裝一下python3:
cd Python-3.6.5
./configure --prefix=/usr/local/python3
make
make install
Django應用部署
Python3.6.5的環境已經搭建完畢,之后就可以在騰訊雲服務器啟動應用了,我這里部署了一個django應用。
首先git clone我的django代碼到騰訊雲服務器,當我修改了應用代碼后,我進入應用(backloud)所在目錄並通過git pull更新代碼,之后通過命令啟動django應用:
python3 manage.py runserver 0.0.0.0:8000
可以看到服務起來了:
通過ip和端口號對web應用進行訪問,可以在騰訊雲服務器后台看到訪問日志:
至此就已經成功在騰訊雲上搭建了python3.6.5的開發環境並部署了django應用。
在后台運行django應用,不隨騰訊雲web會話斷開而關閉應用:
nohup python3 manage.py runserver 0.0.0.0:8000&
對於后台運行的進程最好自定義進程名,省的找不到,可以在manage.py文件中加上進程名定義:
try: import setproctitle setproctitle.setproctitle("xxxx") except: pass
然后就可以通過命令過濾出對應的后台進程了:
ps -A | grep "xxxx"