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即可。

相关推荐
摸鱼仙人~5 小时前
一文详解PyTorch DDP
人工智能·pytorch·python
超级种码5 小时前
Java:JavaAgent技术(java.instrument和java.attach)
java·开发语言·python
Salt_07286 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
Iridescent11216 小时前
Iridescent:Day35
python
a程序小傲6 小时前
阿里Java面试被问:.Java 8中Stream API的常用操作和性能考量
开发语言·windows·python
智航GIS6 小时前
2.3 运算符详解
开发语言·python
屋顶那猫6 小时前
使用pyinstaller打包pytest项目
python·pytest
web3.08889996 小时前
接入API-自动化批量获取淘宝商品详情数据
开发语言·python
刹那间的回眸x.y6 小时前
UnitTestReport挺好用
python
码农水水7 小时前
腾讯Java面试被问:阻塞队列BlockingQueue的实现原理
java·后端·python·面试