我有以下项目结构:
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?
问题:如何在包结构中跨越子分支时使用完全指定的包含?
答案 0 :(得分:1)
完全指定的导入失败,因为python(或jython)的当前工作目录设置为Project。你可以:
将Project的父目录添加到python lib
import sys
sys.path.append('/parent/of/project')
或者只是在调试设置中将jython的工作目录更改为Project的父目录。(我不知道该怎么做,因为我不使用pydev。)