- 若 app 下有
app/__init__.py
文件,则此 app 被视做一个 package,而 app 下的其余文件/文件夹被视做 module - 咱们知道,package 的意义是做为一个总体,提供某些功能。所以,package 内部的各个 module 之间使用相对路径导入。
- 好比:在 module1.py 内,这样相对导入:
from .module2 import myClass2
- 注意,问题来了,此时不能之间运行 module.py 这个文件,不然会报错:SystemError: Parent module '' not loaded, cannot perform relative import
- 咱们只能在package外,也就是文件夹 app 外的 run.py文件中导入:
from app.module2 import myClass2
代码实现:
# add the model path to sys.path import sys import os current_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ROOT_PATH = os.path.join(current_path, '..') sys.path.append(ROOT_PATH) # print(current_path) # print(ROOT_PATH) # /Users/zoe/dcba/service/.. from service.tms import tms #供参考
这样写就能够啦!不管是本地文件服务仍是项目服务,均可以正常地运行了。注意,因此涉及的相关组件都要这样哦!blog