You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Poetry包导入报错:AttributeError: module 'my_package'无'transmitter'属性

问题原因分析

问题出在你的Poetry包的pyproject.toml中packages字段的配置方式上:

你当前的配置是:

packages = [
    { include = "my_package/__init__.py", from = "." },
    { include = "my_package/transmitter/*", from = "." },
]

这种拆分式的文件包含逻辑,会导致Poetry在构建包时,没有将transmitter目录正确注册为my_package的子模块。虽然site-packages里的文件结构看起来符合预期,但Python模块系统无法识别transmitter是my_package的属性(子模块)——因为包的元数据里没有建立两者的关联关系。

当你执行from my_package.transmitter import UDPTransmitter时,Python会先加载my_package模块,再尝试访问它的transmitter属性,但由于元数据缺失,这个属性不存在,因此抛出AttributeError。而直接导入my_package.transmitter.udp_transmitter可行,是因为Python可以通过文件路径直接定位到目标模块,不需要依赖my_package模块内的属性映射。

解决方法

修改Poetry包的packages配置,改为直接包含整个my_package目录,让Poetry自动识别所有子模块:

packages = [
    { include = "my_package", from = "." },
]

如果包目录直接位于项目根目录下,也可以用更简洁的写法:

packages = ["my_package"]

修改后重新推送你的Git分支,在消费应用中执行poetry update my-package,就能正常使用from my_package.transmitter import UDPTransmitter的导入方式了。

内容的提问来源于stack exchange,提问作者404usernamenotfound

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:44:56