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

Python模块与包以及工程文件管理

PyCharm 文件夹标记与 Python 模块/包/文件的调用

1. PyCharm 文件夹标记

蓝色文件夹(Source Root)

  • 代表源码文件夹,告诉解释器这里是源码。
  • 蓝色文件夹会被自动添加到 sys.path,解释器会优先从这些文件夹中查找模块和包。
  • 如果不标记为蓝色,可能导致模块或包无法正常导入。

红色文件夹(Excluded Root)

  • 表示排除目录,Python 解释器和 PyCharm 都会忽略这些文件夹。
  • 通常用于排除虚拟环境目录、日志文件夹、缓存文件夹(如 __pycache__)、中间生成文件等。
  • 有助于优化项目性能,防止无关文件干扰项目运行。

橙色文件夹(Resource Root)

  • 用于存放非 Python 文件的资源目录(如图片、HTML 模板、配置文件等)。
  • PyCharm 会将其标记为资源路径,方便通过代码引用这些文件。
  • 程序运行时不会自动加载这些文件,只有显式调用时才会加载。

2. 模块与包

模块

  • Python 中最小的组织单元,一个 *.py 文件就是一个模块。
  • 模块可以包含函数、类、变量,也可以直接运行。

示例:

# module.py
def hello():print("Hello, world!")

  • 包是包含多个模块的文件夹,必须包含一个特殊文件 __init__.py
  • 包可以嵌套包,形成层级结构,便于管理复杂项目。

示例:

package/
├── __init__.py
├── module1.py
└── module2.py

3. 调用包、模块、文件

绝对导入

  • 从项目根目录开始导入。
import package.module1

相对导入

  • 从当前模块的相对路径导入。
from . import module2

📌 如果模块不在 Source Root 中,必须使用相对导入,否则会导入失败。

简言之,就是Python最小的结构是模块,基本就是一个Python文件。包的话是多个模块的集合,可以理解成类似一整个文件夹,但是Python不能直接调文件夹,需要在文件夹加上__init__.py文件(哪怕是空的)才能告诉解释器这是个包,当作包来调。

总结下来就是
1 蓝色文件夹告诉解释器是源码路径,支持模块和包的加载。
2 红色文件夹排除无关文件,优化性能,防止污染模块路径。
3 模块是单个文件,包是模块集合,init.py 必不可少。
4 绝对导入从根目录开始,相对导入从当前模块路径开始。

http://www.xdnf.cn/news/389179.html

相关文章:

  • 【Python训练营打卡】day22 @浙大疏锦行
  • Linux-Ext系列文件系统
  • AI Agent(10):个人助手应用
  • Transformer Decoder-Only 参数量计算
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 代理售票系统|基于Java+vue的代理售票系统(源码+数据库+文档)
  • CVPR2023 | StyLess: 提升对抗样本的可迁移性
  • MATLAB 矩阵与数组操作基础教程
  • 量化交易系统开发经验分享--回测框架调研
  • 股票回购、股票减持和股票解禁对股票价格影响的综合分析
  • Synchronized与锁升级
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • 【C/C++】跟我一起学_C++同步机制效率对比与优化策略
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合
  • mybatis执行sql过程
  • 设计模式简述(十九)桥梁模式
  • 红黑树(C++)
  • 大模型对时尚穿搭体验的革新与重塑
  • 强化学习入门:马尔科夫过程
  • Linux系统中的Web服务器部署及优化
  • 5java集合框架
  • # Ollama 实现大模型调用
  • 无侵入式弹窗体验_探索 Chrome 的 Close Watcher API
  • Android Canvas API 详细说明与示例
  • python【扩展库】websockets
  • idea中的vcs不见了,如何解决
  • 探秘 DeerFlow:字节跳动开源的科研创作魔法盒!
  • 温湿度传感器SHT4X
  • 【C++】AVL树实现
  • 害怕和别人发生冲突怎么办? --deepseek