系列文章目录
前言
在软件设计模块时应该遵从高内聚(high cohesion),低耦合(Low Coupling)的整体思路,从而使程序模块的可重用性、可移植性提高。
而如何实现python库中,不同层级之间模块与模块之间的相互调用和最后加载呢?本文通过sys模块中提供的功能,提供一种解决方案。
一、sys.path是什么?
当导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。
搜索路径存放在sys模块的path中。【即默认搜索路径可以通过sys.path打印查看】
sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径,可以在sys.path下加入所需import模块的路径,使用sys.path.append()实现
二、使用场景及相应方法
若开发的框架未安装,在以往的项目中得到以下经验:需要将开发的代码存放在一个地方,进行调用。而非将该库复制到项目的目录下。这样可以确保版本的一致。
1.引用本地开发未安装的库
因为已经固定了开发代码位置,因此可在sys.path 下 加入库文件根目录所在位置的绝对路径
import sys
sys.path.append(r'A绝对路径')
2. 库内的模块之间互相调用
由于库的位置会发生变化,因此在库内的模块间互相调用,最好使用相对路径。
import sys
sys.path.append('..') : 引用上一级目录地址
sys.path.append('../..') : 引用上两级目录地址
三、引用方法
引用时需要引用具体模块名字
使用
import 模块 as 模块名
文中以以下的路径为例子
路径:
A:
B
C.py
D
E
F.py
G.py
import D.E.F as F
import B.C as C
import D.G.function_name as function_name
from B import C
from D.E import F
总结
该文章主要针对开发python时模块间的互相调用的方法介绍,以及相关语法注意事项。