Solidity

solcx compile_files 關鍵錯誤

  • July 13, 2019

我正在使用 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']).

引用自:https://ethereum.stackexchange.com/questions/71951