Solidity
solc-x 版本出現問題“尚未安裝 solc 0.6.0”
我正在嘗試列印出變數 (
compiled_sol
),正如您將在下面名為 python 文件的程式碼中看到的那樣,deploy.py
我可以部署我的智能合約,但我一直在執行這個錯誤*****INFO: Could not find files for the given pattern(s). Traceback (most recent call last): File "C:\Users\houde\Desktop\Blockchain\solidity_projects\web3_py_simple_storage\deploy.py", line 8, in <module> compiled_sol = compile_standard( File "C:\Users\houde\AppData\Roaming\Python\Python39\site-packages\solcx\main.py", line 368, in compile_standard solc_binary = get_executable(solc_version) File "C:\Users\houde\AppData\Roaming\Python\Python39\site-packages\solcx\install.py", line 194, in get_executable raise SolcNotInstalled( solcx.exceptions.SolcNotInstalled: solc 0.6.0 has not been installed. Use solcx.install_solc('0.6.0') to install. ******
我確實
solc-x
通過這個命令安裝了,*pip install py-solc-x
*所以我可以編譯契約,但我不知道如何升級版本或在這種情況下該怎麼做,我會把程式碼留在下面,非常感謝你們。from solcx import compile_standard 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.sourceMap"]} } }, }, solc_version="0.6.0", ) print("compiled_sol")
注意:“我在契約中使用的 solc 版本 0.6.0”
我正在學習同一門課程,檢查一下,它將向您展示如何在此處修復此錯誤:https ://github.com/smartcontractkit/full-blockchain-solidity-course-py/blob/main/chronological-issues -來自-video.md
您只需要執行以下操作:
from solcx import compile_standard
我們需要將其更改為這一行:
from solcx import compile_standard, install_solc
然後,我們需要在執行
compile_standard
程式碼之前添加一行:install_solc("0.6.0")
或者,您可以在安裝 solcx 之前先安裝Solc,它會為您提供舊版本的 Solidity 編譯器。所以你所要做的就是從 solcx 導入。
我也在你的設置數組中註意到:
"*": {"*": {"abi", "metadata", "evm.bytecode", "evm.sourceMap"}}
您使用了大括號而不是方括號,因此您需要在嘗試編譯之前修復它。它需要看起來像這樣
"*": {"*": ["abi", "metadata", "evm.bytecode", "evm.sourceMap"]}