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

相关推荐
费弗里3 小时前
Python全栈应用开发利器Dash 3.x新版本介绍(1)
python·dash
李少兄9 天前
解决OSS存储桶未创建导致的XML错误
xml·开发语言·python
就叫飞六吧9 天前
基于keepalived、vip实现高可用nginx (centos)
python·nginx·centos
Vertira9 天前
PyTorch中的permute, transpose, view, reshape和flatten函数详解(已解决)
人工智能·pytorch·python
学Linux的语莫9 天前
python基础语法
开发语言·python
匿名的魔术师9 天前
实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
人工智能·pytorch·python
Ven%9 天前
PyTorch 张量(Tensors)全面指南:从基础到实战
人工智能·pytorch·python
mahuifa9 天前
PySide环境配置及工具使用
python·qt·环境配置·开发经验·pyside
大熊猫侯佩9 天前
ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
python·ruby·swift
19899 天前
【Dify精讲】第19章:开源贡献指南
运维·人工智能·python·架构·flask·开源·devops