调用TonTools的client.init_tonlib()时遇TonLib属性缺失错误求助
解决方案:TonTools初始化时'tonlibjson.amd64.dll'缺失/依赖错误
核心问题分析
报错的'TonLib' object has no attribute '_tonlib_json_client_destroy'是次生错误,根源是tonlibjson.amd64.dll文件未找到或其依赖库不完整,导致TonTools无法完成底层TonLib的初始化,进而引发属性绑定失败。
具体解决步骤
替换/补全tonlibjson.amd64.dll文件
- 前往Ton官方仓库下载对应Windows AMD64架构的预编译
tonlibjson.amd64.dll(注意匹配你使用的TonTools版本,避免版本不兼容) - 将文件替换到路径:
D:\PycharmProjects\Dev_dir\ref_bot\.venv\Lib\site-packages\ton\distlib\windows\ - 确保文件权限正常,虚拟环境有读取权限
- 前往Ton官方仓库下载对应Windows AMD64架构的预编译
修复OpenSSL依赖(关键)
TonLib依赖的是OpenSSL 1.1.x系列,而非最新的3.x版本,即使你装了OpenSSL也可能版本不匹配:- 下载OpenSSL 1.1.x Win64安装包(比如1.1.1w)
- 安装后找到
libssl-1_1-x64.dll和libcrypto-1_1-x64.dll(通常在安装目录的bin文件夹) - 把这两个DLL复制到
tonlibjson.amd64.dll所在的文件夹,或者直接放到系统C:\Windows\System32目录
重装TonTools并清理缓存
可能安装过程中文件损坏,执行以下命令:pip uninstall tontools -y pip cache purge pip install tontools如果官方PyPI包有问题,尝试从源码安装:
pip install git+https://github.com/toncenter/tontools.git检查虚拟环境权限与PATH
- 确保你的PyCharm虚拟环境有读写权限,避免安装时文件未正确写入
- 临时将
tonlibjson.amd64.dll所在路径加入系统PATH(重启PyCharm生效)
内容的提问来源于stack exchange,提问作者Yooshyasha
相关产品推荐
相关产品推荐

