【Python】新手必备的实用代码调试技巧指南

OS:Windows        IDE:pycharm

一、代码调试(Debug)

1. 设置 / 取消断点

        鼠标左键点击代码数字处,红色圆点出现即成功设置断点,可设置多个断点。再次点击红色圆点,即可取消断点。

2. 进入调试模式

  • if __name__ == '__main__': 绿色开始标志处鼠标右键第二个。
  • 顶层菜单栏右上角虫子标志。
  •  无代码处鼠标右键。
  • 3. 调试过程

            使用快捷键进行调试,以下是几个最常用的快捷键。

    快捷键

    含义

    F8

    逐行运行代码

    F7

    逐行运行代码,但会进入调用的函数内部

    F9

    直接运行到下一个断点处

    ctrl Z

    回退至上一行代码

    ctrl F

    查找特定的字符

             在pycharm调试界面中查看变量和调用信息,配合调试。鼠标悬浮可查看快捷键,以上快捷键列出的功能图标没有标出。

    4. 忽略断点

            断点依然存在,但是在调试时不再作为一个断点打断。

    二、日志文件(Log)

    1. 运行代码记录

            鼠标右键点击Local History,点击Show History

            弹出下面的界面,分为不同的版本,之前的版本和现在的版本,变动的地方用不同的颜色高亮表示,可以对之前的版本进行回溯。

    2. 默认日志

    1. 在菜单栏中选择 Help >  Show Log in Explorer ,打开日志文件所在的文件夹。
    2. 在文件夹中,idea.log文件是PyCharm的主要日志文件。idea1.log等是历史日志文件。
    3. 如果没有找到日志文件,可能因为文件夹被隐藏,需要打开文件设置显示隐藏文件。打开文件夹,点击查看,勾选隐藏的项目。

     3. 手动配置日志

            日志需要用到python的logging模块,在代码文件里粘贴下列代码即可实现。

            第一种方式是在控制台直接输出:

    import logging
    logging.basicConfig(level = logging.INFO)
    logger = logging.getLogger(__name__)
     
    logger.info("Start running code")
    logger.debug("Do something")
    logger.warning("Something maybe fail.")
    logger.error('there is something wrong')
    logger.info("done")

            第二种方式是将日志信息写入专门的日志文件中,进行管理:

    import logging
    logger = logging.getLogger(__name__)
    logger.setLevel(level=logging.INFO)
    handler = logging.FileHandler("Log/Leetcode.log")
    handler.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    
    logger.info("Start running code")
    logger.debug("running")
    logger.warning("Something you should check")
    logger.error("Something maybe fail.")
    logger.info("done")

            第三种方式是将日志信息写入专门的日志文件中,并且在控制台进行显示:  

    import logging
    logger = logging.getLogger(__name__)
    logger.setLevel(level=logging.INFO)
    handler = logging.FileHandler("Log/Leetcode.log")
    handler.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
    console = logging.StreamHandler()
    console.setLevel(logging.INFO)
    logger.addHandler(console)
    logger.addHandler(handler)
    
    logger.info("Start running code")
    logger.debug("running code")
    logger.warning("Something you should check")
    logger.error("something went wrong")
    logger.info("done")

    4. 日志插件

            在菜单栏 File >  Settings >  Plugins 中搜索 Ideolog,点击install下载。如果查找不到,建议查看pycharm版本是否过低。

    1. 新建一个log文件,点击按钮进入插件配置。
    2. 进入配置页面,点击黄色框部分进行编辑。
      ^.*([Ee]rror|[Ss]evere).*$	# 某行有error、severe (不区分大小写)
      ^.*[Ww]arn(ing)?.*$			# 某行有warn、warning (不区分大小写)
      ^.*[Ii]nfo.*$				# 某行有info、Info、INFO
      

    3. 效果图

    三、函数调用关系查看

            当需要定义了很多函数需要进行调用,特别是从不同的文件中调用时,会给调试造成很多困难,可以查看调用关系进行查看。

            当函数被调用时,会在函数前一行标出x usages,代表有x处调用了该函数左键单击即可看到调用该函数的地方,点击可直接跳转。

            当调用一个函数时, 可以按住ctrl键,函数名会变为蓝色。鼠标左键点击,即可直接跳转到函数定义的位置进行查看。

    ​​​

    四、项目依赖

    Python 环境管理是开发中的核心技能,能够避免依赖冲突、隔离不同项目的运行环境。

    1. 依赖隔离:不同项目可能需要不同版本的包。

    2. 避免全局污染:防止版本混乱。

    3. 可复现性:确保能准确复现开发环境。

    推荐使用 venv(Python 内置)管理项目环境:

    1. 在IDE中创建项目初期就会选择python环境,建议选择venv环境。
    2. 选择手动创建遵循以下步骤:
    # 创建虚拟环境(项目根目录运行)
    python -m venv venv  # 会在当前目录生成 `venv` 文件夹
    
    # 激活环境
    # Windows
    venv\Scripts\activate
    # Linux/Mac
    source venv/bin/activate
    
    # 退出环境
    deactivate

            在复现他人的项目时:

    1. 查看该项目所支持的python版本。
    2. 创建虚拟环境。
    3. 查看项目是否含有 requirement.txt 文件。如果有运行以下命令一键安装依赖:
    pip install -r requirements.txt

            在自己的项目下:

            运行以下命令生成依赖列表(全部依赖,包括间接依赖):

    pip freeze > requirements.txt

             运行以下命令生成依赖列表(仅根据代码生成必要依赖):

    # 1. 安装 pipreqs
    pip install pipreqs
    
    # 2. 生成 requirements.txt(项目根目录运行)
    pipreqs . --encoding=utf8 --force

    五、Pycharm常用快捷键

            以下列举了一些常用的快捷键。

    # 1. 将选中的内容注释
        ctrl + /
    # 2. 为选中的内容添加()、{}、[]
        ctrl + ({[    #按照需求三个中任选一个
    # 3. 删除光标所在的行
        ctrl + y
    # 4. 跳转到上一个方法/下一个方法
        alt + up/down
    # 5. 查找内容
        ctrl + F
    # 6. 替换内容
        ctrl + R        ​​​​​​​   

    五、缓存文件管理

            一般pycharm缓存内容都会保存在C盘的用户目录下,如果想把缓存修改到指定位置可以按照如下步骤:

    1. 打开pycharm安装目录。打开 >bin>idea.properties 文件。
    2. 默认情况下路径都是被注释的。需要重新设置。
      idea.config.path=your_path/config
      idea.system.path=your_path/system
      idea.plugins.path=your_path/plugins
      idea.log.path=your_path/log

    3. 缓存迁移有两种方法:
      (1)直接将原本的缓存文件复制到规定的路径。C盘本身没有的文件夹(例plugins),不需要额外创建。
      (2)重启pycharm,软件提示会将缓存迁移。

    作者有话说: 插件可以根据文中的路径点击之后弹出的窗口中进行管理。日志部分的代码只是为了快速上手,更简洁的日志和代码配置(如 json 接口)可以查找更加详细的教程学习。

    作者:五碗火锅

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】新手必备的实用代码调试技巧指南

    发表回复