文章目录
ubuntu 18.04下,python环境的配置,包括一些必备的安装包。
使用miniconda帮助我们配置管理python开发环境
选择miniconda的理由:
- conda 可以创建多个env,每个env可以安装不同版本的python以及不同的软件包,各个env之间互不干扰,可自由切换
- 相比较完整版Anaconda,minicomda更加轻便
准备工作
系统版本:Ubuntu 18.04.4 LTS
miniconda版本:Miniconda3-py39_4.10.3-Linux-x86_64
miniconda 安装
安装执行下载下来的sh文件就可以,然后一路确认下来就可以了
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$./Miniconda3-latest-Linux-x86_64.sh
验证miniconda
$ conda --version
conda 4.10.3
退出shell,重新登陆,可以看到再次登陆,进入base env环境
(base) ubuntu@VM-0-11-ubuntu:~$
验证python版本
(base) ubuntu@VM-0-11-ubuntu:~$ python --version
Python 3.9.5
miniconda env配置
创建新的env
(base) ubuntu@VM-0-11-ubuntu:~$ conda create -n py38 anaconda python=3.8
激活env
(base) ubuntu@VM-0-11-ubuntu:~$ conda activate py38
激活后可以看到,python的版本已经改变
(py38) ubuntu@VM-0-11-ubuntu:~$ python --version
Python 3.8.12
(py38) ubuntu@VM-0-11-ubuntu:~$
取消激活
(base) ubuntu@VM-0-11-ubuntu:~$ conda deactivate
ubuntu@VM-0-11-ubuntu:~$
存储数据——MySql数据库
安装
sudo apt-get install mysql-server
修改密码
ubuntu18.04没有设置密码环节,需要读取debian.cnf获取登录密码,如果有直接设置就可以,可以忽略
获取默认用户名密码:
(py38) ubuntu@VM-0-11-ubuntu:~/python/workspace$ sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = RbOFvzFIPl4hw0Xc
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = RbOFvzFIPl4hw0Xc
socket = /var/run/mysqld/mysqld.sock
修改
(py38) ubuntu@VM-0-11-ubuntu:~/python/workspace$ mysql -udebian-sys-maint -pRbOFvzFIPl4hw0Xc
...
mysql> use mysql
mysql> update user set authentication_string=password('111111') where user='root' and Host='localhost';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit
验证:
(py38) ubuntu@VM-0-11-ubuntu:~/python/workspace$ mysql -uroot -p111111
mysql>
启动和关闭
启动
sudo service mysql start
关闭
sudo service mysql stop
重启
sudo service mysql restart
简单使用
python连接mysql,可以使用pymysql这个包。
conda install pymysql
test.py
import pymysql
# 连接mysql,创建连接对象
conn = pymysql.connect(host='localhost', user='root', passwd='111111', db='mysql')
# 创建一个光标对象
cur = conn.cursor()
#光标对象执行,查询用户属性命令
cur.execute("select host, user, authentication_string, plugin from user")
#获取查询结果,并打印
print(cur.fetchone())
# 关闭,否则会引起泄漏
cur.close()
conn.close()
输出
('localhost', 'root', '*FD571203974BA9AFE270FE62151AE967ECA5E0AA', 'mysql_native_password')