我最近构建了一个Python包,并通过Debian打包程序进行安装。它安装在我的系统上,所以我可以在其他项目中使用它。在我的新项目中,我有一个包名称相同的文件夹,即欧泊。我扫描的网页,包括这个网站,一切都朝着采用指出:Python导入冲突
from __future__ import absolute_import
不幸的是,它解决不了问题,我怀疑我缺少一个细节。
我使用Python 2.7.3,这里是我的项目文件夹结构:
安装封装结构:
- opal
__init__.py
core.py
新建项目结构:
- opal
- __init__.py
- net.py
在新的项目中,我不能做:
from opal.core import OpalClient
我总是得到一个错误,core
没有在opal
下找到!
如果__future__
是解决方案,有人可以给我一个例子。我尝试了几种方法,总是遇到错误。我发现这对于这样一个整洁的语言尴尬的问题;)
干杯
debian软件包的解决方案是什么?我们的用户和开发人员都有这两种选择,可通过Linux平台上的apt-get或Python方式(setuptools)安装软件包。 – user2449584
我相信[Debian Python tools](http://wiki.debian.org/Python/FAQ#Python_eggs)可以直接处理鸡蛋。正确的元数据应该存在,以便setuptools扩展可以找到不同的'opal'包,并确保Python将它们视为一个顶级命名空间。 –
在Python 3.3及更高版本中,您可以在不使用setuptools的情况下创建名称空间。 https://www.python.org/dev/peps/pep-0420但是你不能使用Python 3.2或者更重要的Python 2. –