0

我有以下项目结构:

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 更喜欢它们(否则它会显示一个错误),第二个原因是我觉得不这样做会令人困惑。

我偶然发现了这一点,但认为这是错误的/这里不需要如何在 Python 中创建命名空间包?

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

4

1 回答 1

1

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

将 Project 的父目录添加到您的 python 库中

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

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

于 2012-06-15T09:20:24.450 回答