Project01
test01.py
def plustest(num1, num2):
return num1 + num2
#
if __name__ == '__main__':
print(plustest(2, 3))
Project02
test02.py,该文件里面有函数:def plustest()
现在想在test02.py文件内调用test01.py文件内的函数 plustest

实现如下(test02.py内容如下):
import os
Project02_path= os.path.dirname(os.path.abspath(__file__))
Project01_path= os.path.join(test01_path, r'D:\DeskTop\Project01')
import math
import sys
if Project01_path in sys.path:
sys.path.append(Project01_path)
print("添加完成")
import test01
print(test01.plustest(11, 22))
此时 import plus_num 会报错,有红色下划线提示错误,不用理会,这是应为程序还未执行,系统检查不到模块,正常运行不会报错
进阶版:跨文件调用“类”
跨文件调用YOLO检测算法
由于YOLO模块在算法中是类的名称,因此会和上面介绍的有一点差异
import os
import sys
train_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
yolo_path = os.path.join(train_path, r'D:\DeskTop\ultralytics-v8.3\ultralytics\models\yolo')
if yolo_path not in sys.path:
sys.path.append(yolo_path)
print("添加完成")
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
from model import YOLO
test_model = YOLO(r"D:\DeskTop\ultralytics-v8.3\ultralytics\cfg\models\11\yolo11n.yaml").load(r"D:\DeskTop\ultralytics-v8.3\yolo11n.pt")
result = test_model.train(data=r"G:\DeskTop\Test_Annotation\coco.yaml",
epochs=100,
imgsz=(512, 512),
device=0,
batch=2,
workers=0
)
唯一的区别多嵌套了一层os.path.dirname()
train_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
这里from model import YOLO 也会提示错误,不要理会,原理同上,可以正常运行
因为YOLO类是yolo问价夹下model.py里的类,因此要找到YOLO类的文件的上层文件进行添加

被折叠的 条评论
为什么被折叠?



