我最近构建了一个Python包,并通过Debian packager安装了它。它安装在我的系统上,所以我可以在其他项目中使用它。在我的新项目中,我有一个包文件夹的相同名称,即opal。我浏览了包括本网站在内的所有指向使用的内容:
from __future__ import absolute_import
不幸的是,它不能解决问题,我怀疑我遗漏了一个细节。在
我使用的是Python 2.7.3,下面是我的项目文件夹结构:
安装包结构:
^{pr2}$新项目结构:
- opal
- __init__.py
- net.py
在新项目中,我不能:
from opal.core import OpalClient
我总是得到一个错误,在opal
下找不到{
如果__future__
是解决方案,有人能给我举个例子吗。我试了好几种方法,总是出错。我发现这对于一个如此简洁的语言来说是个棘手的问题;)
干杯
Python不需要额外的帮助就可以合并名称空间。在找到另一个顶层}模块。在
opal
包之前,有一个opal
顶级包。找到的第一个包将opal.net
作为包含的模块,但没有{您需要使用setuptools namespace setup来启用此行为;使用
setuptools
兼容的setup.py
安装您的包,并让它为您注册和管理命名空间。在如果您使用的是python3.3或更新版本,那么可以使用新的PEP 420 namespace support,在这里您可以将顶层目录留空来创建一个可以合并的命名空间。另请参见Python3导入系统文档中的Namespace packages。在
相关问题 更多 >
编程相关推荐