使用Python名称空间包进行开发

2024-04-29 10:08:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python名称空间包有一个问题,想知道什么是一个好的解决方案。在

我的项目结构如下所示

project_name/ext/app_ext

这就是我正在做的项目。它的依赖项也在同一命名空间中。在

^{pr2}$

我在应用程序包中的应用程序。但是,我遇到了接收no module named app_ext的问题。在

我认为这与依赖名称空间包的安装方式有关(我是用PIP安装的)。依赖项名称空间的包并不像distribute/setuptools文档中所述的那样与__init__.py文件一起安装,但它们的安装包中都真正包含以下声明。在

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

现在是真正的问题。当已经安装了一些相关的名称空间软件包时,使用名称空间的软件包有什么诀窍吗?在


Tags: path项目nameproject名称程序包app应用程序
1条回答
网友
1楼 · 发布于 2024-04-29 10:08:13

一种解决方案是修改名称空间包的路径以添加本地路径。(如果您在Django中工作,可以在设置.py). 在

from os import path
import sys

PACKAGE_NAMESPACE = ["project_name", "ext"]
VIRTUAL_PACKAGE = '.'.join(PACKAGE_NAMESPACE)
__import__(VIRTUAL_PACKAGE)
local_package = path.abspath(path.join(*PACKAGE_NAMESPACE))
sys.modules[VIRTUAL_PACKAGE].__dict__["__path__"].insert(0, local_package)

这种方法也用于tiddlywebplugins命名空间的tiddlyweb项目中。在

相关问题 更多 >