如何在Python中创建命名空间包?

2024-01-20

我有一个具有以下结构的 Python 3 项目:

project/
|
+--root/
   |
   +--__init__.py
   |
   +--sub/
      |
      +--__init__.py
      |
      +--actualcode.py

我想使用“命名空间包”,以便我的库与单独项目中的其他相关库共享公共命名空间。导入语句应该如下所示:

from root.sub.actualcode import something

The __init__.py根文件夹中的文件包含以下语句来创建命名空间包:

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

但导入时无法引用代码root.sub。它仅在我编写时才有效:

from sub.actualcode import something # doesn't work with "root.sub..."!

我应该做什么来使用root作为命名空间?


命名空间包可以使用以下命令构建分发 http://packages.python.org/distribute/setuptools.html#namespace-packages。诀窍是将以下行添加到参数中setup:

setup(
  # ...
  namespace_packages  = ["root"]
)

问题中示例的其余部分是正确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中创建命名空间包? 的相关文章

  • Celery计划任务中的打印语句不会出现在终端中

    当我跑步时celery A tasks2 celery worker B我想看到每秒打印 芹菜任务 目前没有打印任何内容 为什么这不起作用 from app import app from celery import Celery from
  • 美丽的汤从谷歌搜索中提取href

    谷歌搜索给出了以下 HTML 的第一个结果 h3 class r a href https rads stackoverflow com amzn click com 0470284889 class l vst em Quantitati
  • 如何使用 pandas 选择所有非 NaN 列和非 NaN 最后一列?

    如果标题有点令人困惑 请原谅我 假设我有test h5 下面是使用读取该文件的结果df read hdf test h5 testdata 0 1 2 3 4 5 6 0 123 444 111 321 NaN NaN NaN 1 12 2
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • 如何在 Django 管理中以表格格式显示添加模型?

    我刚刚开始使用 Django 编写我的第一个应用程序 为我的家庭设计的家务图表管理器 在本教程中 它向您展示了如何添加相关对象 http docs djangoproject com en dev intro tutorial02 cust
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 通过鼻子测试检查某个函数是否发出警告

    我正在使用编写单元测试nose http somethingaboutorange com mrl projects nose 0 11 2 我想检查函数是否引发警告 该函数使用warnings warn 这是很容易就能做到的事情吗 def
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • 如何使用 PHP SoapClient 添加任意命名空间?

    如何使用 PHP SoapClient 添加任意名称空间 命名空间实际上并未在请求中使用 但我认为它阻止了我的消息被正确使用 WSDL 在这里 http abr business gov au abrxmlsearchRPC ABRXMLS
  • 理解@property装饰器和继承[重复]

    这个问题在这里已经有答案了 这里是 Python 3 以防万一它很重要 我试图正确理解如何实现继承 property使用 我已经搜索了 StackOverflow 并阅读了大约 20 个类似的问题 但无济于事 因为他们试图解决的问题略有不同
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何在matplotlib中基于x轴更改直方图颜色

    我有根据 pandas 数据框计算出的直方图 我想根据 x 轴值更改颜色 例如 If the value is 0 the color should be green If the value is gt 0 the color shoul
  • x11 - 导入错误:没有名为“kivy.core.window.window_x11”的模块

    目前我正在尝试构建一个我通过 buildozer 用 Python 和 Kivy 编写的应用程序 无论我在做什么 我都会遇到 window x11 的问题 即使我在代码中注释掉所有与 Windows 相关的内容或执行本文中描述的所有操作 这
  • 使用 Flask-SQLAlchemy 进行多对多多数据库连接

    我正在尝试使这个多对多联接与 Flask SQLAlchemy 和两个 MySQL 数据库一起工作 并且它非常接近 只是它为联接表使用了错误的数据库 这是基础知识 我有main db and vendor db 表格设置为main db u
  • 从 csv 中读取 pandas 数据帧,以非固定标头开始

    我有许多数据文件是由我的实验室中使用的一些相当黑客的脚本生成的 该脚本非常有趣 因为它在标头之前附加的行数因文件而异 尽管它们具有相同的格式并具有相同的标头 我正在编写一个批处理来将所有这些文件处理为数据帧 如果我不知道位置 如何让 pan
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表

随机推荐

  • 有支持 PHP 5.3 的 PHPDocumentor 替代品吗?

    一些新的 PHP 5 3 功能 包括命名空间和匿名函数 与 PHPDocumentor 不兼容 即使是最新版本也是如此 例如 当遇到 没有名称的函数 即闭包 时 它只会引发错误 那么 是否有其他开源工具可以根据 PHP 5 3 代码中的 J
  • 清除 HTML 标签中的所有内联事件

    对于 HTML 输入 我想中和所有具有内联 js 的 HTML 元素 onclick onmouseout 等 我在想 对下面的字符进行编码还不够吗 所以 onclick location href ggg com 会变成 onclick
  • cmake 上的相对路径/如果之后更改路径,则会出现错误

    我有一个带有自己项目的 VS 12 解决方案 该解决方案依赖于一些依赖项 使用 cmake 生成的项目文件 我使用 cmake 生成了这些 VS12 项目 并将这些项目添加到我的解决方案中 使用相对路径 然后我必须调整这些项目的输出目录 在
  • CentOS 上 PHP 7 的 Memcache 扩展安装失败

    我正在尝试将相当大的 PHP 5 3 代码库升级到 PHP 7 它托管在 CentOS 6 5 上 因此我想将其保留在该操作系统上 我目前正在一个原始 Vagrant 机器上进行此操作 我已成功安装 PHP 7 以及除 Memcache 之
  • 使用 Angular-map 包将 Bingmap 集成到 Angular 6 中

    我正在尝试使用 angular map npm 包在 Angular 6 中实现 bingmap 因为我有refer https www npmjs com package angular maps also referred https
  • 对数字音频进行下采样并应用低通滤波器

    我从 CD 中获得了 44Khz 音频流 表示为 16 位 PCM 样本数组 我想将其削减至 11KHz 流 我怎么做 从多年前我上工程课时起 我就知道流将无法再准确地描述超过 5500Hz 的任何内容 因此我想我也想删除高于此的所有内容
  • Twitter Bootstrap 2:导航栏子菜单链接不起作用

    更新到 Twitter Bootstrap 2 0 非常棒 后 导航链接inside子菜单不起作用 jQuery 版本为 1 7 1 下拉菜单实际上有效 并且标记是正确的 根据文档 div class navbar navbar fixed
  • 如何在VS2010 RDLC报表中添加组页脚

    如何将 组页脚 摘要行添加到我在 VS2010 RLDC 中创建的组中 设计器的底部有行组和列组 单击行组旁边的箭头 然后单击 添加总计 这会添加页脚行 但请注意 如果您在最外面的组上执行此操作 它会添加一个 报告页脚 显示所有组的总计 而
  • 如何使用 scipy.optimize.minimize 进行最大似然回归

    我如何使用最大似然回归scipy optimize minimize 我特别想使用minimize在这里运行 因为我有一个复杂的模型 需要添加一些约束 我目前正在尝试使用以下内容的简单示例 from scipy optimize impor
  • 如果没有 verifyProof、sessionInfo、临时证明或注册 ID,则无法创建 PhoneAuthCredential

    我正在尝试firebase电话验证 在我的电话号码上收到代码后 代码跳转到verifysignincode 方法 创建失败phoneAuthCredentials 程序捕获的异常是 无法创建PhoneAuthCredential没有任何一个
  • 在 Symfony 2 中验证没有形式的实体

    我正在为 Symfony 2 创建一个 REST API 控制器 我开始使用 SensioGeneratorBundle 创建 CRUD 并修改该控制器以充当 REST 控制器 但是 我没有表格 所以我正在考虑删除这部分 如何在没有表单的情
  • 我可以在打字稿中检查联合类型的类型吗?

    有没有一种方法可以针对语言中内置的联合类型对对象进行类似 instanceof 的查询 我有一个带有联合类型的类型别名 如下所示 type MyType Foo Bar Thing Each of Foo Bar and Thing继承自B
  • desiredAccuracy 和 distanceFilter 之间的区别

    很抱歉在这里成为菜鸟 我无法清楚地区分 CLLocationManager 属性距离过滤器 and 期望准确度 如果我希望我的应用程序为即使很小的距离 例如 100 200 米 提供不同的坐标 我应该为这些属性设置什么值 帮助将不胜感激 根
  • Homebrew 说 Xcode 已经过时了

    我正在尝试使用 Homebrew 执行软件包的安装 但是当我尝试运行安装时出现以下错误 错误 您的 Xcode 7 3 1 已过时 请更新到 Xcode 8 0 或删除它 Xcode 可以从 App Store 更新 我想在这台机器上保留
  • 更改 UISearchBar 放大图标颜色和位置

    我有一个 UISearchBar 我想更改初始放大图标 出现在 UISearchBar 中间的图标 的位置以及颜色或图标 到目前为止 我更改了色调和图标图像 但是 只有当我在模拟器上测试应用程序时才会显示新图标 但在实际设备 均运行 iOS
  • 具有索引签名的 keyof 类型运算符

    我正在阅读打字稿docs https www typescriptlang org docs handbook 2 keyof types html the keyof type operator并通过这段代码摘录得出 type Mapis
  • 如何使用通过 NPM 安装的 font Awesome 5

    我没有找到任何下一步该做什么的文档 我通过以下方式将 font awesome 安装到了我的项目中npm npm install save fortawesome fontawesome free webfonts 但现在怎么办 谁能指出我
  • SQL-92 (Filemaker):如何更新序列号列表?

    在其中一个 SortID 发生更改 例如从 444 更改为 444 1 之后 我需要使用 SQL 92 重新分配所有 SortID 从 1 开始 直到 Beleg 表的记录子集的 MAX SortID 我尝试了多种方法 例如 SET a 0
  • 如何让 ECS 任务承担另一个 AWS 账户的角色?

    我有一个审计容器 可以针对各种 AWS API 运行扫描 我希望所有这些都在产品帐户中作为 ECS 任务运行 但扫描其他帐户中的资源 是否可以将另一个帐户的角色设置为任务角色 我尝试过设置taskRoleArn在我的任务定义中从另一个帐户添
  • 如何在Python中创建命名空间包?

    我有一个具有以下结构的 Python 3 项目 project root init py sub init py actualcode py 我想使用 命名空间包 以便我的库与单独项目中的其他相关库共享公共命名空间 导入语句应该如下所示 f