我想以一种简单的方式从子目录导入模块:
我想调用app.py中的所有功能
.
├── app.py
└── testsubdir
└── testsubsubdir
├── utils.py
testsubdir2
└── testsubsubdir2
├── utils2.py
为此,我现在使用:
sys.path.append('/home/www/testsubdir/testsubsubdir')
sys.path.append('/home/www/testsubdir2/testsubsubdir2')
from utils import <some_function>
from utils2 import <some_function>
答案 0 :(得分:0)
对于相对导入,您只需执行from testsubdir.testsubsubdir import utils
。
对于“同级”情况,则比较棘手。您可以使用sys.path.append(path)
(或sys.path.insert(0, path)
,但这不是一个很好的解决方案。有关更好的选择,我将引用this怪物文章。
因此,对于您的问题1,您可以(借助丑陋的技巧)进行os.path.append(os.path.dirname(os.path[0]))
。