ubuntu20.04升级python3.9,安装mysqlclient

ubuntu20.04自带python3.8,由于项目使用的是python3.9,需要升级。

另外,python django使用了 mysql,需要安装mysqlclient。

做个笔记备忘:


升级python

一种是APT方法

sudo apt update 
sudo apt install software-properties-common

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt update

sudo apt list | grep python3.9

sudo apt install python3.9

然后配置python3指向python3.9

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2sudo update-alternatives --config python3#  选择 2,并验证一下python3 --versionv

另一种方法是源码编译(首选)

sudo apt updatesudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-devwget https://www.python.org/ftp/python/3.9.8/Python-3.9.8.tgz# 具体可以看 https://www.python.org/downloads/source/
tar -xf Python-3.9.8.tgzcd Python-3.9.8./configure --enable-optimizations
make -j 4#  对应处理器核数,可以通过 nproc 查出
sudo make altinstall#  不用install而用altinstall,是要覆盖系统默认的python3
python3.9 --version

安装pipenv及mysqlclient

安装pip和pipenv:

sudo apt install python3-pip

这样安装的将在通过python3.8安装的,由于上面已安装了python3.9,也带了pip3.9,所以上一条可以省略,只需在pip后加3.9即 pip3.9就可以了。

sudo pip3.9 install pipenv

查看官网

https://pypi.org/project/mysqlclient/

安装基础包,好像还要根据python的版本,安装特定的的开发包,比如python3.9-dev.

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

再在虚拟环境中测试安装mysqlclient

mkdir test

cd test

pipenv install mysqlclient


Access denied for user ‘root’@’localhost’的错误修复

有时候会出现root无法访数据库的问题,需要修改本地密码如下:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';FLUSH PRIVILEGES;

这里附一下安装mysql步骤:

sudo apt updatesudo apt install mysql-servermysql --versionsudo /etc/init.d/mysql startsudo systemctl status mysqlsudo systemctl start mysql
sudo mysql_secure_installation
sudo mysqlSHOW DATABASES;CREATE DATABASE database_name;

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注