最近寫了一個 個人博客 ,是基於Python Django項目,準備部署到阿里雲服務器上,一路踩過來好多坑…欲哭,寫一個博客記錄下筆記。本篇博客記錄在阿里雲服務器上部署Python-3.8.1
服務器版本: Ubuntu 16.04.6 LTS(有許多教程版本不同,所用到的命令也不相同,執行同樣的命令可能會得到不同的結果,在此提醒)
安裝過程
1.配置依賴環境
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev
libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev
liblzma-dev libffi-dev libc6-dev
2.安裝過程
- 首先連接之後,在終端中輸入
python --version
和python3 --version
,可以查看當前服務器下的python2和python3的版本,Ubuntu16.04已經安裝了兩個版本的python,但是我們需要安裝另外的3.8.1版本。
- 移動到根目錄下
cd ~
,在根目錄下創建文件夾用於保存待會兒要下載的安裝包,命令sudo mkdir py3
,添加完成後可以用ls
查看到該文件夾; cd py3
進入該文件夾,在此文件夾下下載python-3.8.1的安裝包wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
,下載Python-3.8.1的壓縮包,如果下載速度太慢,也可以直接從本地電腦上傳文件到服務器
此處插入從本地電腦上傳文件到服務器的方法
需要先安裝一個工具,執行命令sudo apt-get install lrzsz
,安裝完成
然後我們可以執行命令rz
,回車之後回彈出文件選擇框,選擇我們需要上傳的文件即可
注:命令rz
的執行路徑就是文件上傳的保存路徑,同文件夾下不可以有同名文件,有同名文件會導致上傳失敗
- 不論用哪種方式,最後使用命令
ls
都可以查看到在py3目錄下有一個Python-3.8.1.tgz的文件 - 解壓
tar -xvzf Python-3.8.1.tgz
- 進入到解壓縮目錄
cd Python-3.8.1
- 建立一個目錄,用於安裝Python3
sudo mkdir -p /usr/local/python3
- 執行命令
./configure --prefix=/usr/local/python3
,prefix=後面所加內容即爲python3安裝的目錄 - 編譯
make
- 安裝
sudo make install
- 到這一步已經安裝成功,但是我們使用之前的命令查看python的版本,發現並沒有改變,這是因爲還沒有修改python的軟鏈接
3.軟鏈接修改
- 執行命令
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
,提示我文件已經存在,這是因爲原生版本Python-3.4.3的軟鏈接就是目錄 /usr/bin/python3 - 所以先移除這個目錄,執行命令
rm -rf /usr/bin/python3
- 再執行
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
,然後查看python3 --version
,可以看到python的版本已經改變,但是查看pip3,出現報錯,暫時不管,繼續執行之後的命令,問題就會解決。
- 爲pip3添加軟鏈接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- 執行完之後在鍾段輸入
pip3
不會報錯,但使用pip3命令安裝python第三方庫的時候可能有些更新的問題
4.pip3部分問題
- 當我嘗試用
sudo pip3 install mysqlclient
時,出現錯誤;使用命令sudo rm /usr/bin/lsb_release
解決
- 更新命令
sudo pip3 install --upgrade pip
和sudo pip3 install --upgrade setuptools