使用py-solcx部署智能合约Python代码时遇意外关键字参数错误求助
解决solcx中
compile_standard()报TypeError: solc_wrapper() got an unexpected keyword argument 'solc_version'问题 问题原因
新版本的solcx库(v0.10及以上)调整了API,compile_standard()函数不再接受solc_version参数,该参数的功能已移至set_solc_version()函数实现。
解决方案
有两种可行的修复方式:
方式1:适配新版solcx API
移除compile_standard()中的solc_version参数,改用set_solc_version()指定编译器版本:
from solcx import compile_standard, install_solc, set_solc_version install_solc("0.6.0") # 设置要使用的solc版本 set_solc_version("0.6.0") with open("./SimpleStorage.sol", "r") as file: simple_storage_file = file.read() compiled_sol = compile_standard( { "language": "Solidity", "sources": {"SimpleStorage.sol": {"content": simple_storage_file}}, "settings": { "outputSelection": { "*": { "*": ["abi", "metadata", "evm.bytecode", "evm.bytecode.sourceMap"] } } }, } )
方式2:安装兼容旧API的solcx版本
如果你想保留原代码结构,可以安装支持solc_version参数的旧版solcx(比如v0.9.1):
pip uninstall solcx -y pip install solcx==0.9.1
安装完成后,原代码即可正常运行。
内容的提问来源于stack exchange,提问作者Rohan Gautam
相关产品推荐
相关产品推荐

