最近写了一个 个人博客 ,是基于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 --versionpython3 --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 pipsudo pip3 install --upgrade setuptools