关于python中自己写的模块之前相互调用函数

PS:之前偷懒直接用了添加系统路径的方法,现在代码越改越多也越杂,而且最近要添加多个配置参数,当我添加完参数发现崩了,服务计算一直失败,还是得用导包的形式,之前稍微用过但是一直模棱两可一知半解,现在知道一旦代码函数多了之后就得用它,希望能比较直观的理解

1.先说下偷懒的方式也就是如下代码:

import sys, os
sys.path.append(os.path.dirname(__file__) + os.sep + 'database/')

如果当前py文件的运行目录是/home/pacs/PycharmProjects/tf,那在当前这个py文件里可以添加过上面代码,就可以在下面代码中直接导入/home/pacs/PycharmProjects/tf/database/下面的文件.这个适合文件比较少的时候临时用用的.

2.导包的形式:

下面是在包在pycharm上打开的格式

LungDetectorClassier是包的顶层,而后每个文件夹下都要放一个__init__.py才能知道这是一个包才能调用文件夹下的文件(LungDetectorClassier文件夹下也要加,就是最后一个__init__.py).

如果我要在db_sqlite3.py文件里调用configg.py(跨文件夹),那么要这么写

from LungDetectorClassier.config import configg

而我要在execute_status_result.py调用db_sqlite3.py(同文件夹下),那么要这么写

from . import db_sqlite3

注意点

如果我们要开启服务的话,不能将调用服务的运行文件放在包里面的文件夹,必须放在包外面如下:

我就是用test_ai.py和test_predict.py来开启服务的.

其中test_ai.py代码如下:

# -*- coding: utf-8 -*-
from LungDetectorClassier.service.ai import AI_algorithm

if __name__ == '__main__':
    AI_algorithm()

而test_predict.py类似.

猜你喜欢

转载自blog.csdn.net/qq_36401512/article/details/95204458