here is the code I'm trying to run (from Patric's course), please consider that this is my first time into coding and it has been two weeks trying to solve this issue !
from solcx import compile_standard from web3 import Web3 import json
with open("./SimpleStorage.sol", "r") as file: simple_storage_file = file.read()
Solidity source code compiled_sol = compile_standard(
{ "language": "Solidity", "sources": {"SimpleStorage.sol": {"content": simple_storage_file}}, "settings": { "outputSelection": { "*": { "*": ["abi", "metadata", "evm.bytecode", "evm.bytecode.sourceMap"] } } }, }, solc_version="0.6.0", )
with open("compiled_code.json", "w") as file: json.dump(compiled_sol, file)
get bytecode bytecode = compiled_sol["contracts"]["SimpleStorage.sol"]["SimpleStorage"]["evm"][
"bytecode" ]["object"]
get abi abi = compiled_sol["contracts"]["SimpleStorage.sol"]["SimpleStorage"]["abi"]
connecting to ganach w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:7545")) chaind_id = 5777
my_address = "0xa1d2a440E4E75bcA442107162DE8C276D637a0eF" 'private_key = os.getenv("0x170ab1d384e1d218ccd8ec332dfa334f8e9980f008043ff04e99a8154322bf06")
cteating the contract in python SimpleStorage = w3.eth.contract(abi=abi, bytecode=bytecode) print(SimpleStorage)
I tried all the solution I found; installed cyphon, installed legacy but nothing changed. and this is was I see on the terminator:
PS C:\Users\raouf\demos\web3_py_simple_storage> pip --version
pip 22.0.4 from C:\Users\raouf\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10)
PS C:\Users\raouf\demos\web3_py_simple_storage> python --version
Python 3.10.4
PS C:\Users\raouf\demos\web3_py_simple_storage> pip install web3
Collecting web3
Using cached web3-5.29.1-py3-none-any.whl (500 kB)
Collecting aiohttp<4,>=3.7.4.post0
Using cached aiohttp-3.8.1-cp310-cp310-win_amd64.whl (555 kB)
Collecting eth-abi<3.0.0,>=2.0.0b6
Using cached eth_abi-2.1.1-py3-none-any.whl (27 kB)
Collecting jsonschema<5,>=3.2.0
Using cached jsonschema-4.5.1-py3-none-any.whl (72 kB)
Collecting eth-utils<2.0.0,>=1.9.5
Using cached eth_utils-1.10.0-py3-none-any.whl (24 kB)
Collecting eth-hash[pycryptodome]<1.0.0,>=0.2.0
Using cached eth_hash-0.3.2-py3-none-any.whl (8.8 kB)
Collecting eth-account<0.6.0,>=0.5.7
Using cached eth_account-0.5.7-py3-none-any.whl (101 kB)
Collecting hexbytes<1.0.0,>=0.1.0
Using cached hexbytes-0.2.2-py3-none-any.whl (6.1 kB)
Collecting eth-typing<3.0.0,>=2.0.0
Using cached eth_typing-2.3.0-py3-none-any.whl (6.2 kB)
Collecting websockets<10,>=9.1
Using cached websockets-9.1-cp310-cp310-win_amd64.whl
Requirement already satisfied: pywin32>=223 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from web3) (304)
Collecting lru-dict<2.0.0,>=1.1.6
Using cached lru-dict-1.1.7.tar.gz (10 kB)
Preparing metadata (setup.py) ... done
Collecting protobuf<4,>=3.10.0
Using cached protobuf-3.20.1-cp310-cp310-win_amd64.whl (903 kB)
Collecting ipfshttpclient==0.8.0a2
Using cached ipfshttpclient-0.8.0a2-py3-none-any.whl (82 kB)
Requirement already satisfied: requests<3.0.0,>=2.16.0 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from web3) (2.27.1)
Collecting multiaddr>=0.0.7
Using cached multiaddr-0.0.9-py2.py3-none-any.whl (16 kB)
Collecting aiosignal>=1.1.2
Using cached aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
Collecting async-timeout<5.0,>=4.0.0a3
Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting yarl<2.0,>=1.0
Using cached yarl-1.7.2-cp310-cp310-win_amd64.whl (122 kB)
Collecting attrs>=17.3.0
Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from aiohttp<4,>=3.7.4.post0->web3) (2.0.12)
Collecting multidict<7.0,>=4.5
Using cached multidict-6.0.2-cp310-cp310-win_amd64.whl (27 kB)
Collecting frozenlist>=1.1.1
Using cached frozenlist-1.3.0-cp310-cp310-win_amd64.whl (33 kB)
Collecting parsimonious<0.9.0,>=0.8.0
Using cached parsimonious-0.8.1-py3-none-any.whl
Collecting eth-keyfile<0.6.0,>=0.5.0
Using cached eth_keyfile-0.5.1-py3-none-any.whl (8.3 kB)
Collecting eth-keys<0.4.0,>=0.3.4
Using cached eth_keys-0.3.4-py3-none-any.whl (21 kB)
Collecting rlp<3,>=1.0.0
Using cached rlp-2.0.1-py2.py3-none-any.whl (20 kB)
Collecting eth-rlp<2,>=0.1.2
Using cached eth_rlp-0.3.0-py3-none-any.whl (5.0 kB)
Collecting bitarray<1.3.0,>=1.2.1
Using cached bitarray-1.2.2.tar.gz (48 kB)
Preparing metadata (setup.py) ... done
Collecting pycryptodome<4,>=3.6.6
Using cached pycryptodome-3.14.1-cp35-abi3-win_amd64.whl (1.8 MB)
Collecting cytoolz<1.0.0,>=0.10.1
Using cached cytoolz-0.11.2.tar.gz (481 kB)
Preparing metadata (setup.py) ... done
Collecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0
Using cached pyrsistent-0.18.1-cp310-cp310-win_amd64.whl (61 kB)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from requests<3.0.0,>=2.16.0->web3) (2021.10.8)
Requirement already satisfied: idna<4,>=2.5 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from requests<3.0.0,>=2.16.0->web3) (3.3)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from requests<3.0.0,>=2.16.0->web3) (1.26.9)
Collecting toolz>=0.8.0
Using cached toolz-0.11.2-py3-none-any.whl (55 kB)
Collecting eth-rlp<2,>=0.1.2
Using cached eth_rlp-0.2.1-py3-none-any.whl (5.0 kB)
Requirement already satisfied: varint in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from multiaddr>=0.0.7->ipfshttpclient==0.8.0a2->web3) (1.0.2)
Collecting base58
Using cached base58-2.1.1-py3-none-any.whl (5.6 kB)
Requirement already satisfied: netaddr in c:\users\raouf\appdata\local\programs\python\python310\lib\site-packages (from multiaddr>=0.0.7->ipfshttpclient==0.8.0a2->web3) (0.8.0)
Collecting six
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: lru-dict, bitarray, cytoolz
Building wheel for lru-dict (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [5 lines of output]
running bdist_wheel
running build
running build_ext
building 'lru' extension
error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for lru-dict
Running setup.py clean for lru-dict
Building wheel for bitarray (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [13 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-310
creating build\lib.win-amd64-cpython-310\bitarray
copying bitarray\test_bitarray.py -> build\lib.win-amd64-cpython-310\bitarray
copying bitarray\test_util.py -> build\lib.win-amd64-cpython-310\bitarray
copying bitarray\util.py -> build\lib.win-amd64-cpython-310\bitarray
copying bitarray\__init__.py -> build\lib.win-amd64-cpython-310\bitarray
running build_ext
building 'bitarray._bitarray' extension
error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for bitarray
Running setup.py clean for bitarray
Building wheel for cytoolz (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [53 lines of output]
[1/5] Cythonizing cytoolz/utils.pyx
[2/5] Cythonizing cytoolz/dicttoolz.pyx
[3/5] Cythonizing cytoolz/functoolz.pyx
[4/5] Cythonizing cytoolz/itertoolz.pyx
[5/5] Cythonizing cytoolz/recipes.pyx
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-310
creating build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\compatibility.py -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\_signatures.py -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\_version.py -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\__init__.py -> build\lib.win-amd64-cpython-310\cytoolz
creating build\lib.win-amd64-cpython-310\cytoolz\curried
copying cytoolz\curried\exceptions.py -> build\lib.win-amd64-cpython-310\cytoolz\curried
copying cytoolz\curried\operator.py -> build\lib.win-amd64-cpython-310\cytoolz\curried
copying cytoolz\curried\__init__.py -> build\lib.win-amd64-cpython-310\cytoolz\curried
copying cytoolz\dicttoolz.pyx -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\functoolz.pyx -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\itertoolz.pyx -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\recipes.pyx -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\utils.pyx -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\cpython.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\dicttoolz.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\functoolz.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\itertoolz.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\recipes.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\utils.pxd -> build\lib.win-amd64-cpython-310\cytoolz
copying cytoolz\__init__.pxd -> build\lib.win-amd64-cpython-310\cytoolz
creating build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\dev_skip_test.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_compatibility.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_curried.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_curried_toolzlike.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_dev_skip_test.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_dicttoolz.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_docstrings.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_doctests.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_embedded_sigs.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_functoolz.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_inspect_args.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_itertoolz.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_none_safe.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_recipes.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_serialization.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_signatures.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_tlz.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
copying cytoolz\tests\test_utils.py -> build\lib.win-amd64-cpython-310\cytoolz\tests
running build_ext
building 'cytoolz.dicttoolz' extension
error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for cytoolz
Running setup.py clean for cytoolz
Failed to build lru-dict bitarray cytoolz
Installing collected packages: lru-dict, bitarray, websockets, toolz, six, pyrsistent, pycryptodome, protobuf, multidict, hexbytes, frozenlist, eth-typing, eth-hash, base58, attrs, async-timeout, yarl, parsimonious, multiaddr, jsonschema, cytoolz, aiosignal, ipfshttpclient, eth-utils, aiohttp, rlp,
eth-keys, eth-abi, eth-rlp, eth-keyfile, eth-account, web3
Running setup.py install for lru-dict ... error
error: subprocess-exited-with-error
× Running setup.py install for lru-dict did not run successfully.
│ exit code: 1
╰─> [7 lines of output]
running install
C:\Users\raouf\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_ext
building 'lru' extension
error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
CodePudding user response:
Accoring to this line:
error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ [end of output]
You need to install Microsoft Visual C 14.0