我目前使用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。我加入它,然後一切都很好。 也許,我們需要找到一個更好的未來命名空間的東西。如果你能給我任何建議,我會很高興。 非常感謝。 –