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 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
sudo update-alternatives --config python3
# 选择 2,并验证一下
python3 --versionv
另一种方法是源码编译(首选):
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
wget 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.tgz
cd 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 update
sudo apt install mysql-server
mysql --version
sudo /etc/init.d/mysql start
或
sudo systemctl status mysql
sudo systemctl start mysql
sudo mysql_secure_installation
sudo mysql
SHOW DATABASES;
CREATE DATABASE database_name;