python - 在新包中导入 python 子包
问题描述
可能这是一个平庸的问题,我热切希望它是这样,但我已经坚持了太多天没有尝试寻求帮助。
StackOverflow 中也有类似的问题,例如Python 子包导入和Python:导入子包或子模块。不过,这些问题与导入包中实际存在的子包(及其内容)有关。
我已经开发了几个包,我们称它们package1
为package2
. 这些包本身就有意义,具有非常复杂的依赖关系并且需要编译一些部分,但是一旦它们在 Pipy 上,最终用户就会消除这种复杂性。
我现在正在开发第三个包,package3
它旨在合并package1
和package2
添加一些额外的功能。我希望用户从package1
和导入功能。package2
package3
剥离package3
到骨架,我们可以将其简化为单个__init__
文件,如下所示:
// Content of the init file
import package1
import package2
__all__ = [
"package1",
"package2"
]
现在,在脚本中,我执行以下操作:
from package3 import package1
from package3 import package2
有用。
但是,执行以下操作不起作用:
from package3.package1 import content_of_package1
因为它引发以下错误:
ModuleNotFoundError: No module named 'package3.package1'
但是如果我运行以下它可以工作:
import package3
import package1
assert dir(package1) == dit(package3.package1)
我不知道接下来要尝试什么,除非我只是将整个package1
和package2
结构镜像到package3
. 有什么解决ModuleNotFoundError
错误的建议吗?
谢谢你。
解决方案
推荐阅读
- dataframe - 将数据框拆分为特定列的四分位数
- javascript - 当我使用 nonce 时,为什么我不能绕过我的 CSP 在 nunjucks 中阻止我的 javascript 代码
- python - 值来自行总和的新列(python)
- mysql - MYSQL 没有重复的 2 个值
- python - 提示:向“CustomUser.user_permissions”或“User.user_permissions”的定义添加或更改相关名称参数
- docker - 如何使用 Docker for Windows 和 WSL2(Windows 10 v.2004)在 Docker 组合中使用命名卷绑定
- python - Pytorch的backward()的任何Tensorflow等价物?尝试将梯度发送回 TF 模型以进行反向传播
- ruby-on-rails - Git 克隆 Heroku 应用程序 - 应用程序已过期
- d3.js - 如何使用 d3.js 制作冥想的形状?
- flutter - 无法让 Flutter 包 flutter_pagewise 工作