我对python很新,特别是它的导入机制。我不完全确定我正确地使用了这个术语,所以我应该为此事先道歉。
首先,这似乎是我第三方导入的问题所以我无法真正改变他们发布的结构。
在发布中,所有软件包都在site-packages / [ROOTFOL] / [PACKAGE]中
[ROOTFOL]没有__init__.py
文件,只有包文件夹包含此文件。
此文件夹放在site-packages中,site-packages存在于我的PYTHONPATH
在他们提供的示例中,他们使用它:
import ROOTFOL.PACKAGE.WhateverObject as obj
我试图避免将每个包添加到PYTHONPATH,因为它们有很多。一切似乎都运行良好,但它确实抑制了我使用自动完成功能的能力,这是令人沮丧的部分。
我觉得奇怪的是,当安装包时,包装旁边有一个EGG-INFO文件夹。在这里有几个.txt文件,其中一个是namespace_packages.txt,它只有ROOTFOL。我有什么方法可以将它设置为PyDev吗?
答案 0 :(得分:1)
所以,你在这里看到的是他们的分销模式。通常一个模块将有一个根源导入,但一切都不是必然的。他们提供的包(我假设)是许多不互相交互的模块;或者他们都可以独自一人。
而不是单独导入每个包,您可以使用'from'关键字:
from ROOTFOL.PACKAGE import *
将抓取该子模块内的所有内容。您可以通过电子邮件向开发人员发送电子邮件,询问他们为何以这种方式部署它......或者您可以将自己的__init__.py
添加到根文件夹中,
from ROOTFOL import *
将走在树上。祝你好运!