我制作了一个包含很多包和模块的应用程序。我正在开发这些包(在它们的目录中),并且由于我在包目录中执行文件,因此模块/包的导入路径发生了变化。
例如,该项目看起来有点像这样......
├── app.py
└── utils
├── database.py
└── robot
├── __init__.py
├── run.py
├── recognition.py
└── housekeeping.py
如果我执行python3 app.py则import utils.database有效。
但是,如果我在包中运行python3 run.py则无效。import utils.database
我想知道如何执行函数并导入模块/包而不会出错。
我有这个工作,但我认为这是不对的。到目前为止,我已经尝试__name__ == "__main__"在每个主.py文件中使用 using 和 using sys.path.append,但我觉得必须有一种更简单、更好看的方法。
这就是里面的run.py样子,我也必须在里面做同样的事情database.py,这是最好的方法吗?
if __name__ == "__main__":
import sys
sys.path.append('../../')
from utils.robot.recognition import *
from utils.robot.housekeeping import *
import utils.database as db
长风秋雁
相关分类