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

Solana.py导入PublicKey遇ModuleNotFoundError问题求助

Solana.py 0.31.0账户订阅导入错误修复方案

错误根源

你碰到的ModuleNotFoundError: No module named 'solana.publickey'是因为Solana.py 0.31.0版本重构了核心类型的模块结构——PublicKey不再属于solana.publickey模块,而是迁移到了底层依赖solders的模块中。

修复步骤

1. 修正PublicKey导入路径

替换错误的导入语句:

from solana.publickey import PublicKey

改为:

from solders.publickey import PublicKey

solders是Solana.py 0.31.0的默认依赖,安装Solana.py时会自动同步安装,无需额外手动安装。

2. 正常实现特定账户WebSocket订阅

修正导入后,即可使用account_subscribe监听目标账户,示例代码如下:

import asyncio
from solders.publickey import PublicKey
from solana.websocket_api import connect

async def track_account():
    async with connect("wss://api.mainnet-beta.solana.com") as websocket:
        # 替换为你需要监听的账户公钥
        target_pubkey = PublicKey("your_target_account_key_here")
        # 订阅账户状态变更
        await websocket.account_subscribe(target_pubkey)
        
        # 持续接收并处理事件
        while True:
            event = await websocket.recv()
            print("账户更新事件:", event)

if __name__ == "__main__":
    asyncio.run(track_account())

额外排查建议

如果执行后仍有依赖问题,可重新安装指定版本的Solana.py确保环境一致:

pip uninstall solana -y
pip install solana==0.31.0

account_subscribe仅推送目标账户的状态变更,相比logs_subscribe的全量日志,能显著减少无效数据处理,更契合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:52:40