如何根据相对路径导入Python模块?
例如,如果dirFoo包含Foo.py和dirBar,和dirBar包含Bar.py,我怎么导入Bar.py到Foo.py?
这是一个直观的表示:
dirFoo\
Foo.py
dirBar\
Bar.py
Run Code Online (Sandbox Code Playgroud)
Foo希望包括Bar,但重组文件夹层次结构不是一种选择.
这不是我第一次imports对 Python 感到畏缩。但我想这是一个有趣的用例,所以我想在这里询问它以获得更好的见解。我的项目结构如下:
sample_project
- src
- __init__.py
- module1
- __init__.py
- utils.py
- module2
- __init__.py
- models.py
- app.py
Run Code Online (Sandbox Code Playgroud)
module1从所有其他导入方法和module2从app所有其他导入方法。另外,当您运行时,app它需要创建一个名为“文件夹logs外部”的文件夹src。现在有以下几种方法可以运行该应用程序:
src文件夹flask run appsrc文件夹外部flask run src.app为了确保我不会import errors因为启动应用程序的顶级模块的更改而出现这种情况,我这样做:
import sys
sys.path.append("..")
Run Code Online (Sandbox Code Playgroud)
对于这个问题有更好的解决办法吗?