0

我对python相当陌生,尤其是它的导入机制。我不完全确定我使用的术语是否正确,所以我应该为此道歉。

首先,这似乎是我在使用 3rd 方导入时遇到的问题,所以我无法真正改变他们发布的结构。

在该版本中,所有的包都在 site-packages/[ROOTFOL]/[PACKAGE] 中,[ROOTFOL] 没有__init__.py文件,只有包文件夹有这个文件。该文件夹被放置在站点包中,站点包存在于我的 PYTHONPATH 中

在他们提供的示例中,他们像这样使用它:

import ROOTFOL.PACKAGE.WhateverObject as obj

我试图避免将每个包都添加到 PYTHONPATH 中,因为它们有很多。一切似乎都运行良好,但它确实抑制了我使用自动完成功能的能力,这是令人沮丧的部分。

我觉得奇怪的是,当安装包时,包旁边有一个 EGG-INFO 文件夹。其中有几个 .txt 文件,其中一个是 namespace_packages.txt,它只有 ROOTFOL。有什么方法我应该将它设置为 PyDev?

4

1 回答 1

1

所以,你在这里看到的是他们的分销模式。通常,一个模块将有一个根导入,一切都源于此,但情况不一定如此。他们提供的软件包(我假设)是许多不相互交互的模块;或者他们都可以独立存在。

您可以使用“from”关键字,而不是单独导入每个包:

from ROOTFOL.PACKAGE import *

这将抓取该子模块内的所有内容。您可以给开发人员发送电子邮件,询问他们为什么以这种方式部署它……或者您可以将自己的添加__init__.py到根文件夹中,然后,

from ROOTFOL import * 

这将走树。祝你好运!

于 2013-08-25T22:15:33.923 回答