【发布时间】:2013-07-16 09:21:27
【问题描述】:
我有以下设置:
/project/
/api/
__init__.py
test.py
/modules/
__init__.py
api.py
我正在尝试从 /project/ 目录运行 api.py:python modules/api.py
api 模块尝试从 api 包中导入测试模块,但失败。我尝试了以下方法:
import api.test
import project.api.test # (with an __init__.py in my /project/ directory)
我什至尝试将 api 包的父目录添加到系统路径,如下所述:
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
问题
如何设置我的项目,使每个包都知道其父目录中的其他包,该父目录也是项目的根目录?
【问题讨论】:
-
您不需要递归地将所有目录添加到系统路径吗? api.py 位于子目录中。你为什么使用
os.path.dirname(os.path.dirname(..))?只是选择逻辑。我之前没用过os.path.dirname -
逻辑是我想要文件本身的目录,然后我想要那个目录的目录。相当于请求文件的父目录 :D
标签: python directory filesystems package python-module