【发布时间】:2014-08-17 06:33:15
【问题描述】:
我正在使用别人的项目来为我的项目添加一些功能,并且我想导入一个 python 脚本。问题在于他们的目录的导入结构:我已将他们的项目目录放在我的主项目下的一个子文件夹中(需要留在那里,这样我就可以将他们的项目排除在我的版本控制之外)它看起来像这样:
myproject/
myscript.py
theirproject/
__init__.py
baz.py
secondlayer/
__init__.py
all.py
foo.py
bar.py
all.py 只是一个导入语句的列表,它们从第二层目录导入附加脚本,如下所示:
from secondlayer.foo import *
from secondlayer.bar import * #etc
我想导入:
from theirproject.secondlayer.all import *
但是当 python 抱怨“没有名为 secondlayer.foo 的模块”时失败 我还尝试了以下方法:
from theirproject.secondlayer import all
当我将我的脚本放在 theirproject/ 中并在没有“theirproject”前缀的情况下导入所有内容时,我可以让它工作,但我真的不能这样。我可以通过像这样单独导入 foo、bar 等来进一步完成导入过程:
from theirproject.secondlayer import foo
from theirproject.secondlayer import bar #etc
但随后这些脚本无法从与第二层相同级别的其他脚本(如 baz.py)导入更多内容,所以我卡住了。
在 python 2.7.6 中执行此操作的正确方法是什么?
【问题讨论】:
标签: python import subdirectory