我使用python包py-solc-x编译智能契约。
os.path.abspath("D:/new.sol")给出我的测试契约退出的路径。'D:\\new.sol'
然后我使用compile_files编译契约compile_files([os.path.abspath("D:/new.sol")]),它给出了KeyError。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Muvi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\solcx\main.py", line 137, in compile_files
contracts = _parse_compiler_output(stdoutdata)
File "C:\Users\Muvi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\solcx\main.py", line 73, in _parse_compiler_output
data['ast'] = sources[source.split(':')[0]]['AST']
KeyError: 'D'我该如何解决这个问题?
发布于 2019-07-11 09:15:25
看来你在py-solc-x中发现了一个bug。
据我所知,这个问题是特定于绝对给定的Windows路径的。通过使用不包括驱动器号的路径,我能够成功地编译。
我是py-solc-x的维护者,我将尽快推出一个带有修复的新版本。短期内,尝试从与new.sol相同的文件夹中运行脚本,并使用solcx.compile_files(['new.sol'])进行编译。
https://ethereum.stackexchange.com/questions/71951
复制相似问题