目录

    主要记录最近遇到的一些开发问题,解决方法。

    1. Python3 连接数据库

    Python3 主要有两个数据库连接客户端: mysqlclient 和 PyMySQL 。

    • mysqlclient 是由 C 语言实现的
    • PyMySQL 是由 Python 实现的

    在性能上, mysqlclient 比 PyMySQL 高一个数量级。但,在 PyPy 下,PyMySQL 与 mysqlclient 性能相差不大。

    如果需要使用 gevent 或 eventlet 的 monkeypatched 处理 socket, 那就选择 PyMySQL。

    2. MySQL 报错 Table ‘performance_schema.session_variables’ doesn’t exist

    执行如下命令,可解决:

    $ mysql -u root -p
    $ mysql> set @@global.show_compatibility_56=ON;
    Query OK, 0 rows affected (0.00 sec)
    

    参考链接: 将show_compatibilty OFF和PFS编译出来的SHOW命令的文档行为

    3. 基于 Tag 进行 Git 开发

    基于 Tag 创建分支:

    $ git branch v4.2.0_docs v4.2.0
    

    实际上,branch 可以是 分支,Tag,甚至 commit id。

    切换到新建的分支:

    $ git checkout v4.2.0_docs
    

    查看提交者用户名和邮箱信息:

    $ git config user.name
    $ git config user.email
    

    将新建的分支推送到远程:

    $ git push origin v4.2.0_docs
    

    4. VirtualBox 配置 Docker 加速器

    编辑 .docker\machine\machines\default\config.json 文件,新增:

    "RegistryMirror": [
        "http://f1361db2.m.daocloud.io"
    ],
    

    5. pipenv 使用

    1. Pipfile

    Pipfile 是社区拟定的依赖管理文件,用于替代 requirements.txt。Pipfile.lock 中记录了当前环境中安装的版本号和哈希值。

    1. 安装
    $ pip install pipenv
    
    1. 创建环境
    # Python3
    $ pipenv --three
    # Python2
    $ pipenv --two
    # 指定版本
    $ pipenv --python 3.6
    # 指定解释器
    pipenv --python pypy3
    

    这里的解释器,需要已经在本地安装,可以不加入 PATH 环境变量中。

    1. 进入环境
    $ pipenv shell