我目前使用pythonxy包与enthought python 2.7。Python与合并命名空间enthought apptools
在我的软件中,我需要使用我自己的user_manager
和其他权限工具。所以我需要添加外部来源到apptools.permissions
。
在apptools文档中,它说我需要开发另一个带名称空间的蛋,apptools.permissions.external
。
因此,我开发了一个文件夹三级:
- apptools,
- apptools.permissions,
- apptools.permissions.external。
- 和setup.py。
在setup.py,我写道:
# 3
from setuptools import setup, find_packages
setup(
name = "apptools.permissions.external",
author = "Airbus",
version = '0.1' ,
include_package_data = True, package_data={'': ['*.*']},
packages = find_packages(),#exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
test_suite = 'nose.collector',
entry_points = """
[envisage.plugins]
apptools.permissions.external = apptools.permissions.external.permissions_plugin:ExternalPermissionsPlugin
""",
#install_requires = ['Aerocity==1.01'],
zip_safe=True,
namespace_packages = ['apptools',
'apptools.permissions',
'apptools.permissions.external',
],
)
然而,我python setup.py develop
后。我去了Python并尝试import apptools.permissions.external
。
Python的告诉我说:
>>> import apptools.permissions.external
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named external
所以它在某种程度上无法找到这个外部的鸡蛋。但是,如果我迅速将apptools
的名称更改为apptools_test
以及相关的文件夹和setup.py
。我其实可以导入apptools_test.permissions.external。
所以我认为有一些问题,当我合并命名空间apptools.permissions.external
到apptools
。 Python不知何故变得困惑。
有人可以帮我解决这个问题吗?
嗨Robert, 非常感谢您的回复。别担心。 这与我们的legancy软件有关。它的设计使用python 2.5与enthought.permissions的东西。我升级到Python 2.7,并得到了这个问题。 非常感谢您的建议。我看了一下apptools.permissions中的__init__.py,它没有declare_namespace。我加入它,然后一切都很好。 也许,我们需要找到一个更好的未来命名空间的东西。如果你能给我任何建议,我会很高兴。 非常感谢。 –