当前位置: 首页 > article >正文

python项目结构,PyCharm 调试Debug模式配置

        经常使用java开发转到python项目有些差异。在 Python 中,项目的组织结构和 Java 有一些不同。Java 在创建项目时通常会先定义包(package),然后在包下创建源代码文件(.java)。而在 Python 中,虽然没有严格的包结构要求,但可以通过目录和模块的组织来实现类似的结构。具体来说,Python 项目的组织方式可以更灵活一些。

一 Python 项目结构

  1. 目录结构:Python 项目通常使用文件夹(目录)来组织模块(.py 文件)。这些文件夹可以视作“包”。
  2. 模块(Module):每一个 .py 文件本身就是一个模块。
  3. 包(Package):一个包含 __init__.py 文件的目录可以视为一个包。__init__.py 可以为空,它告诉 Python 这个目录应该被视作一个包,能够包含多个模块。
my_project/
├── my_project/        # 项目的主目录(包含源代码)
│   ├── __init__.py    # 初始化文件
│   ├── module1.py     # 模块1
│   └── module2.py     # 模块2
├── tests/             # 测试目录
│   ├── test_module1.py
│   └── test_module2.py
├── setup.py           # 项目的安装脚本
├── README.md          # 项目的说明文件
└── requirements.txt   # 依赖文件

关键点:

  1. 包和模块的关系:包就是包含 __init__.py 文件的目录,而模块就是 .py 文件。
  2. 没有强制要求先创建包:不像 Java,Python 项目可以直接创建模块,而不需要先定义包结构。你可以随时根据需要创建包。
  3. 命名空间管理:通过目录结构和 __init__.py 文件,Python 可以创建多层嵌套的包和模块。

 

建新的python项目如下图: 

python的开发整体与java开发相似,原java转python同学也很快上手。 

 

二 PyCharm 调试模式Debug配置

        在开发环境中,启用调试模式可以很容易地发现问题,也是项目开发调试离不开的,不同框架的项目配置各有不同,以下以当下流行的FastApi框架配置为例。

1 在 PyCharm 中调试,创建一个调试配置

  1. 打开 PyCharm,点击右上角的 Run/Debug Configurations
  2. 点击左上角的 +,选择 Python
  3. 选择模块类型 中,输入运行的指令。
  4. 参数中,添加项目名称及有关 --reload--debug 参数。

如下图:

2 设置断点

在代码的行号左侧点击,添加断点。断点会让程序在运行到这行代码时暂停。

3 开始调试

  • 选择配置好的调试选项,点击 Debug 按钮(一个小虫子图标)开始调试。
  • PyCharm 会启动 FastAPI 应用并在你设置的断点处暂停,你可以查看当前的变量值、调用堆栈等信息,进行逐步调试。

如下图:

调试的快捷键与 java一样,所以从java转python同事毫无压力。 


http://www.kler.cn/a/499859.html

相关文章:

  • TCPIP网络编程
  • 《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第6章内容
  • Vue 3 Diff 算法过程及基本实现方式
  • winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇
  • 信息系统项目管理-采购管理-采购清单示例
  • 2024.10.12 校招 实习 内推 面经
  • 【问题记录】解决小米手机无线投屏出现白屏什么都无法显示的问题
  • 【ROS2】☆ launch之Python
  • 重生之我在21世纪学C++—string
  • 【cuda学习日记】2.2 使用2维网络(grid)和2维块(block)对矩阵进行求和
  • 基于springboot+vue的高校创新创业课程体系的设计与实现
  • OpenAI掌舵人解读OpenAI新进展:迈向超级智能。
  • 传奇3仿韩服单机版安装教程+GM管理面板
  • 20250111面试鸭特训营第19天
  • postgresql|数据库|利用sqlparse和psycopg2库批量按顺序执行SQL语句(psyconpg2新优化版本)
  • 请求方式(基于注解实现)
  • vue.js 使用router-link替代a标签实现高亮
  • Windows11环境下设置MySQL8字符集utf8mb4_unicode_ci
  • UE材质控制UV
  • axios的替代方案onion-middleware
  • Windows 下安装 PyTorch 的常见问题及解决方法
  • 在php中,Fiber、Swoole、Swow这3个协程都是如何并行运行的?
  • 【HTML+CSS+JS+VUE】web前端教程-3-标题标签