Solidity
solcx compile_files 關鍵錯誤
我正在使用 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'
我怎麼解決這個問題?
看起來您在 py-solc-x 中發現了一個錯誤。
據我所知,這個問題特定於絕對給出的 Windows 路徑。通過使用不包含驅動器號的路徑,我能夠成功編譯。
我是py-solc-x的維護者,我會盡快推送一個有修復的新版本。在短期內嘗試從相同的文件夾執行腳本
new.sol
並使用solcx.compile_files(['new.sol'])
.