最近写了一个 个人博客 ,是基于Python Django项目,准备部署到阿里云服务器上,一路踩过来好多坑…欲哭,写一个博客记录下笔记。
服务器版本: 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