Python完整路径导入不适用于包树中的分支

时间:2012-06-15 08:25:20

标签: python jython jython-2.5

我有以下项目结构:

Project
  - GUI
    - ...Modules
  - Data
    - Database
      - ...Modules
    - Files
      - ...Modules
  - Utilities
    - ...Modules

我正在尝试对包边界进行一些导入,例如:

文件(模块)Project.Database.dbdriver中的

我尝试导入Project.Utilities.Conversions。如果我使用完全指定的导入,例如import Project.Utilities.Conversions,则失败,它适用于import Utilities.Conversions,即我不能指定比不同部分更多的路径。但是我想使用完全指定的路径,其中一个原因是eclipse中的pydev更喜欢它们(否则它会显示错误),第二个原因是我发现它不会这样做会让人感到困惑。

我偶然发现了这一点,但认为这是错误的/不需要How do I create a namespace package in Python?

问题:如何在包结构中跨越子分支时使用完全指定的包含?

1 个答案:

答案 0 :(得分:1)

完全指定的导入失败,因为python(或jython)的当前工作目录设置为Project。你可以:

将Project的父目录添加到python lib

import sys
sys.path.append('/parent/of/project')

或者只是在调试设置中将jython的工作目录更改为Project的父目录。(我不知道该怎么做,因为我不使用pydev。)