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同事毫无压力。

相关推荐
Mantanmu18 分钟前
Python训练day40
人工智能·python·机器学习
天天爱吃肉821822 分钟前
新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
android·python·嵌入式硬件·汽车
ss.li24 分钟前
TripGenie:畅游济南旅行规划助手:个人工作纪实(二十二)
javascript·人工智能·python
l木本I37 分钟前
大模型低秩微调技术 LoRA 深度解析与实践
python·深度学习·自然语言处理·lstm·transformer
哆啦A梦的口袋呀41 分钟前
基于Python学习《Head First设计模式》第七章 适配器和外观模式
python·学习·设计模式
十月狐狸44 分钟前
Python字符串进化史:从青涩到成熟的蜕变
python
狐凄2 小时前
Python实例题:Python计算线性代数
开发语言·python·线性代数
西猫雷婶2 小时前
pytorch基本运算-导数和f-string
人工智能·pytorch·python
述雾学java2 小时前
深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
人工智能·pytorch·python
要努力啊啊啊2 小时前
使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
数据库·人工智能·python·深度学习·自然语言处理·sqlite