2011-01-24 68 views
0

我创建了一个小的框架和我的目录结构是这样的蟒蛇相对列入

myframework -> contrib -> jinja2 
myframework -> contrib -> session 
myframework -> start.py 

问题是下了contrib包,像会话INFACT jinjia2有子目录和的Jinja2的__init__.py里有一些进口相对所以现在,使其工作根除位置 ,我必须把Jinja2的包放到根目录,有一种方法,使在

+1

我对理解你的问题有些困难。 jinja2在contrib以及会话下还是会话在jinja2里面的文件夹contrib?它看起来像你从来没有完成你的最后一句话,使它有点难以看到你想要什么:D – Skurmedel 2011-01-24 09:48:18

+0

ops对不起,我有一个start.py我导入jinja2模板,但二放在一个目录(contrib)导入jinja2不工作,所以如果我想包括jinja2会话/ __ init__.py不工作,因为jinjia2期望在网站的根目录:) – LXG 2011-01-24 16:51:09

回答

3

工作你将有一个hard time如果你要重新设计包装,其中的结构相对进口已被使用。只要按照其设计的方式使用软件包,并使用多个软件包,只需确保它们全部位于PYTHONPATH中即可。 relative imports在以下目录结构和参考机制下工作最佳。只要确保你的模块以类似的方式访问文件。