zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python 连接 MySQL 和 Linux 环境下安装 Python3 的操作方法

2023-09-27 14:26:35 时间

目录

一、Python 连接 MySQL 

1.安装

2.导入

3.连接

4.查询

5.简单插入

6.批量插入

7.更新

二、Linux 环境下安装 Python3 的操作方法

1.Linux 下 Python 版本

2.查看 Python 版本

3.安装 Python 3 步骤


一、Python 连接 MySQL 

使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy。

Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。

PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。

SQLAlchemy是一个ORM框架,它并不提供底层的数据库操作,而是要借助于MySQLdb、PyMySQL等第三方库来完成,目前SQLAlchemy在Web编程领域应用广泛。

本文主要介绍PyMySQL的正确使用方法,示例代码都是选自实战项目。

1.安装

简单的方式:

pip install pymysql
复制代码

如果无法联网,需要进行离线安装,例如:

pip install pymysql-x.x.x.tar.gz
复制代码

2.导入

import pymysql
复制代码

3.连接

def connect_wxremit_db():
    return pymysql.connect(host='10.123.5.28',
                           port=3306,
                           user='root',
                           password='root1234',
                           database='db_name',
                           charset='latin1')
复制代码

4.查询

def query_country_name(cc2):
    sql_str = ("SELECT Fcountry_name_zh"
                + " FROM t_country_code"
                + " WHERE Fcountry_2code='%s'" % (cc2))
    logging.info(sql_str)

    con = mysql_api.connect_wxremit_db()
    cur = con.cursor()
    cur.execute(sql_str)
    rows = cur.fetchall()
    cur.close()
    con.close()

    assert len(rows) == 1, 'Fatal error: country_code does not exists!'
    return rows[0][0]
复制代码

5.简单插入

def insert_file_rec(self, file_name, file_md5):
        con = mysql_api.connect_wxremit_db()
        cur = con.cursor()
        try:
            sql_str = ("INSERT INTO t_forward_file (Ffile_name, Ffile_md5)", 
                       + " VALUES ('%s', '%s')" % (file_name, file_md5))
            cur.execute(sql_str)
            con.commit()
        except:
            con.rollback()
            logging.exception('Insert operation error')
            raise
        finally:
            cur.close()
            con.close()
复制代码

6.批量插入

remit_ids = [('1234', 'CAD'), ('5678', 'HKD')]

con = mysql_api.connect_wxremit_db()
        cur = con.cursor()
        try:
                cur.executemany("INSERT INTO t_order (Fremit_id, Fcur_type, Fcreate_time"
                                                + " VALUES (%s, %s, now())", new_items)
                assert cur.rowcount == len(remit_ids), 'my error message'
                con.commit()
        except Exception as e:
                con.rollback()
                logging.exception('Insert operation error')
        finally:
                cur.close()
                con.close()
复制代码

7.更新

    def update_refund_trans(self, remit_id):
        con = mysql_api.connect_wxremit_db()
        cur = con.cursor()
        try:
            sql_str = ("SELECT Fremit_id"
                       + " FROM t_wxrefund_trans"
                       + " WHERE Fremit_id='%s'" % remit_id
                       + " FOR UPDATE")
            logging.info(sql_str)

            cur.execute(sql_str)
            assert cur.rowcount == 1, 'Fatal error: The wx-refund record be deleted!'

            sql_str = ("UPDATE t_wxrefund_trans"
                        + " SET Fcheck_amount_flag=1"
                        + ", Fmodify_time=now()"
                        + " WHERE Fremit_id='%s'" % remit_id
            logging.info(sql_str)
            cur.execute(sql_str)

            assert cur.rowcount == 1, 'The number of affected rows not equal to 1'
            con.commit()
        except:
            con.rollback()
            logging.exception('Update operation error')
            raise
        finally:
            cur.close()
            con.close()
复制代码

PyMySQL已经相当成熟,和Python-MySQL一样,它在很多Linux发行版本中都是可选的安装组件。


二、Linux 环境下安装 Python3 的操作方法

1.Linux 下 Python 版本

目前Linux下的绝大部分系统都自带了python2.x的版本,而现在python的主流版本已经到了3.x。为此我们需要将python3.x安装在自己的Linux系统上。

2.查看 Python 版本

[root@xiaohui ~]# python --version
Python 2.7.5
复制代码

3.安装 Python 3 步骤

3.1 用 wget 下载 Python 3.x 的安装包

笔者下载的是 3.7.1 的版本,其余的版本也可根据自己的需要进行下载

[root@xiaohui ~]# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz 
复制代码

3.2 创建存放 Python3.x 的文件夹

[root@xiaohui ~]# mkdir  /usr/local/python3/
复制代码

3.3 将压缩包移至创建的文件夹内并切换至该文件夹解压安装包

[root@xiaohui ~]# mv Python-3.7.1rc2.tgz /usr/local/python3
[root@xiaohui ~]# cd  /usr/local/python3
[root@xiaohui python3]# tar -zxf  Python-3.7.1rc2.tgz 
复制代码

3.4 切换至解压的文件夹

[root@xiaohui python3]# cd ./Python-3.7.1rc2
复制代码

3.5 配置、编译和执行安装

[root@xiaohui Python-3.7.1rc2]# ./configure --with-ssl
[root@xiaohui Python-3.7.1rc2]# make
[root@xiaohui Python-3.7.1rc2]# make install
# 安装成功显示
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1
复制代码

步骤 5 中可能会出现一些 errors,主要是缺少相应的依赖包,只需要通过 yum 安装对应的依赖包即可解决。笔者就遇到了三个 errors。

错误1 缺少gcc

错误代码
configure: error: no acceptable C compiler found in $PATH
该错误是因为本机缺少gcc编译环境,只需安装gcc即可
# 安装命令
[root@xiaohui Python-3.7.1rc2]# yum install -y gcc
复制代码

错误2 缺少zlib

错误代码
zipimport.ZipImportError: can't decompress data; zlib not available
该错误是因为本机缺少zlib解压缩类库,只需安装zlib即可
# 安装命令
[root@xiaohui Python-3.7.1rc2]# yum install -y zlib*
复制代码

错误3 缺少libffi-devel

错误代码
ModuleNotFoundError: No module named '_ctypes'
该错误是因为本机缺少libffi-devel包,只需安装此包即可
# 安装命令
[root@xiaohui Python-3.7.1rc2]# yum install -y libffi-devel
注意在安装完缺少的依赖包后,仍需重新运行对应所在的配置、编译和执行安装命令
复制代码

3.6 配置及建立软链接

将python库路径添加到/etc/ld.so.conf配置中
# ld.so.conf文件是存储etc目录下的所有.conf文件
[root@xiaohui Python-3.7.1rc2]# echo "/usr/python/lib" >> /etc/ld.so.conf
[root@xiaohui Python-3.7.1rc2]# ldconfig
# 建立新的软链接至python3.x,原本旧链接无需删除
# 原因在于例如CentOS的yum源是用python2.x编写的,删除可能会出一些错误
[root@xiaohui Python-3.7.1rc2]# ln -s /usr/python/bin/python3 /usr/bin/python3
[root@xiaohui Python-3.7.1rc2]# ln -s /usr/python/bin/pip3 /usr/bin/pip3
复制代码

经过上述步骤后则成功完成了 Python3.x 的安装,我们可以检测系统的 Python 版本

[root@xiaohui ~]# python3 --version
Python 3.7.1rc2
# python2.x依旧存在
[root@xiaohui ~]# python2 --version
Python 2.7.5
复制代码

使用pip3测试

[root@xiaohui Python-3.7.1rc2]# pip3 list
Package    Version 
---------- --------
certifi    2019.3.9
chardet    3.0.4   
future     0.17.1  
idna       2.8     
itchat     1.2.32  
pip        10.0.1  
pypng      0.0.19  
PyQRCode   1.2.1   
requests   2.21.0  
setuptools 39.0.1  
urllib3    1.24.3  
wxpy       0.3.9.8 
You are using pip version 10.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

测试成功,python3已成功安装在本Linux系统上

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!