python导包机制-更优方式

在学习某个大模型应用的后端时,发现:

shell 复制代码
xxx
|-----src
|------\---modules
|------\------\------b.py
|-----app.py

app.py中可以使用src.modules.b来进行导入。之前我导入时是形如.modules.b这种形式(前面有.),但是当导入的是上上级目录中的文件时异常难以导入。

经过不断了解,才发现之前我导入的方式不够好。上述导包方式使得用python开发更像是在进行主流的前后端开发,心智负担很小,开发更加便捷。

本文对上述导包方式进行记录,防止之后再犯蠢。

包是存放多个模块的目录。在python3.3之前需要显示声明__init__.py文件,之后版本不强制要求声明。

导包

目录和各文件如下:

使用python app.py即可运行程序。

测试

由于导包原因,如果要对src/modules/call.py进行测试,不能直接进入对应目录,运行python call.py进行测试。

会提示没有模块src

-m参数可以使我们在根目录下直接进行测试,使用python -m src.modules.call即可。

相关推荐
狗都不学爬虫_几秒前
小程序逆向 - Hai尔(AliV3拖动物品)
javascript·爬虫·python·网络爬虫
abc123456sdggfd10 分钟前
HTML5中Vuex持久化插件中WebStorage的底层配置
jvm·数据库·python
小龙Guo11 分钟前
Yolo 多任务推理,摄像头+视频实时推理,实现关键点、分割、检测等模型推理部署
python·yolo·关键点检测·模型推理
pele12 分钟前
Go语言如何发GET请求_Go语言HTTP GET请求教程【总结】
jvm·数据库·python
weixin_5806140013 分钟前
Go 语言中 go install 命令的正确用法与常见误区详解
jvm·数据库·python
qq_6543669814 分钟前
Bootstrap 5移除jQuery依赖 Bootstrap 5如何不使用jQuery
jvm·数据库·python
m0_6765443816 分钟前
CSS如何实现元素悬浮在页面底部_利用fixed定位与底部间距
jvm·数据库·python
weixin_5689960616 分钟前
Redis怎样监控当前发生了多少次内存驱逐
jvm·数据库·python
2301_7965885017 分钟前
CSS如何制作导航栏平滑移动_使用transition与left属性
jvm·数据库·python
2301_8038756118 分钟前
C#怎么清空Dictionary字典_C#如何管理内存集合【基础】
jvm·数据库·python