I'm attempting to run nile using python 3.8 on an m1 mac. I am successfully able to init/compile/build with 3.7.12 on the same machine.
python3 -m venv env
source env/bin/activate
git clone https://github.com/OpenZeppelin/nile.git
pip install ./nile
ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly```
Stack trace:
```Traceback (most recent call last):
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/bin/nile", line 8, in <module>
sys.exit(cli())
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/click/core.py", line 1128, in __call__
return self.main(*args, **kwargs)
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/click/core.py", line 1053, in main
rv = self.invoke(ctx)
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/nile/main.py", line 30, in init
init_command()
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/nile/commands/init.py", line 18, in init_command
install_command()
File "/Users/threepwave/code/tmp/starknet-boilerplate/env/lib/python3.8/site-packages/nile/commands/install.py", line 9, in install_command
subprocess.check_call(
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/Users/threepwave/code/tmp/starknet-boilerplate/env/bin/python3', '-m', 'pip', 'install', 'cairo-lang', 'starknet-devnet']' returned non-zero exit status 1.
Requirement already satisfied: ecdsa in ./env/lib/python3.8/site-packages (0.17.0)
Requirement already satisfied: fastecdsa in ./env/lib/python3.8/site-packages (2.2.3)
Requirement already satisfied: sympy in ./env/lib/python3.8/site-packages (1.9)
Requirement already satisfied: six>=1.9.0 in ./env/lib/python3.8/site-packages (from ecdsa) (1.16.0)
Requirement already satisfied: mpmath>=0.19 in ./env/lib/python3.8/site-packages (from sympy) (1.2.1)
Collecting cairo-lang
Using cached cairo-lang-0.7.0.zip (794 kB)
Collecting starknet-devnet
Using cached starknet_devnet-0.1.12-py3-none-any.whl (14 kB)
Collecting aiohttp
Using cached aiohttp-3.8.1.tar.gz (7.3 MB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Installing backend dependencies: started
Installing backend dependencies: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting cachetools
Using cached cachetools-5.0.0-py3-none-any.whl (9.1 kB)
Requirement already satisfied: ecdsa in ./env/lib/python3.8/site-packages (from cairo-lang) (0.17.0)
Collecting eth-hash[pycryptodome]==0.2.0
Using cached eth_hash-0.2.0-py3-none-any.whl (7.2 kB)
Requirement already satisfied: fastecdsa in ./env/lib/python3.8/site-packages (from cairo-lang) (2.2.3)
Collecting frozendict==1.2
Using cached frozendict-1.2.tar.gz (2.6 kB)
Collecting lark-parser
Using cached lark_parser-0.12.0-py2.py3-none-any.whl (103 kB)
Collecting marshmallow-dataclass>=7.1.0
Using cached marshmallow_dataclass-8.5.3-py3-none-any.whl (15 kB)
Collecting marshmallow-enum
Using cached marshmallow_enum-1.5.1-py2.py3-none-any.whl (4.2 kB)
Collecting marshmallow-oneofschema
Using cached marshmallow_oneofschema-3.0.1-py2.py3-none-any.whl (5.8 kB)
Collecting marshmallow>=3.2.1
Using cached marshmallow-3.14.1-py3-none-any.whl (47 kB)
Requirement already satisfied: mpmath in ./env/lib/python3.8/site-packages (from cairo-lang) (1.2.1)
Collecting numpy
Using cached numpy-1.22.1.zip (11.4 MB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting pipdeptree
Using cached pipdeptree-2.2.1-py3-none-any.whl (21 kB)
Collecting prometheus-client
Using cached prometheus_client-0.12.0-py2.py3-none-any.whl (57 kB)
Collecting pytest
Using cached pytest-6.2.5-py3-none-any.whl (280 kB)
Collecting pytest-asyncio
Using cached pytest_asyncio-0.17.2-py3-none-any.whl (16 kB)
Collecting PyYAML
Using cached PyYAML-6.0.tar.gz (124 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Requirement already satisfied: sympy in ./env/lib/python3.8/site-packages (from cairo-lang) (1.9)
Collecting typeguard
Using cached typeguard-2.13.3-py3-none-any.whl (17 kB)
Collecting Web3
Using cached web3-5.26.0-py3-none-any.whl (486 kB)
Collecting flask-cors<4.0.0,>=3.0.10
Using cached Flask_Cors-3.0.10-py2.py3-none-any.whl (14 kB)
Collecting Flask[async]<3.0.0,>=2.0.2
Using cached Flask-2.0.2-py3-none-any.whl (95 kB)
Collecting charset-normalizer<3.0,>=2.0
Using cached charset_normalizer-2.0.10-py3-none-any.whl (39 kB)
Collecting multidict<7.0,>=4.5
Using cached multidict-5.2.0.tar.gz (49 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting aiosignal>=1.1.2
Using cached aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
Collecting yarl<2.0,>=1.0
Using cached yarl-1.7.2.tar.gz (168 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting attrs>=17.3.0
Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting frozenlist>=1.1.1
Using cached frozenlist-1.3.0.tar.gz (65 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting async-timeout<5.0,>=4.0.0a3
Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Requirement already satisfied: six>=1.9.0 in ./env/lib/python3.8/site-packages (from ecdsa->cairo-lang) (1.16.0)
Collecting pycryptodome<4,>=3.6.6; extra == "pycryptodome"
Using cached pycryptodome-3.12.0.zip (3.7 MB)
Collecting typing-inspect>=0.7.1
Using cached typing_inspect-0.7.1-py3-none-any.whl (8.4 kB)
Requirement already satisfied: pip>=6.0.0 in ./env/lib/python3.8/site-packages (from pipdeptree->cairo-lang) (20.2.3)
Collecting py>=1.8.2
Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting packaging
Using cached packaging-21.3-py3-none-any.whl (40 kB)
Collecting pluggy<2.0,>=0.12
Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting toml
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting iniconfig
Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting eth-account<0.6.0,>=0.5.6
Using cached eth_account-0.5.6-py3-none-any.whl (101 kB)
Collecting ipfshttpclient==0.8.0a2
Using cached ipfshttpclient-0.8.0a2-py3-none-any.whl (82 kB)
Collecting hexbytes<1.0.0,>=0.1.0
Using cached hexbytes-0.2.2-py3-none-any.whl (6.1 kB)
Collecting websockets<10,>=9.1
Using cached websockets-9.1.tar.gz (76 kB)
Collecting eth-typing<3.0.0,>=2.0.0
Using cached eth_typing-2.2.2-py3-none-any.whl (6.2 kB)
Collecting jsonschema<4.0.0,>=3.2.0
Using cached jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
Collecting eth-abi<3.0.0,>=2.0.0b6
Using cached eth_abi-2.1.1-py3-none-any.whl (27 kB)
Collecting eth-utils<2.0.0,>=1.9.5
Using cached eth_utils-1.10.0-py3-none-any.whl (24 kB)
Collecting lru-dict<2.0.0,>=1.1.6
Using cached lru-dict-1.1.7.tar.gz (10 kB)
Collecting protobuf<4,>=3.10.0
Using cached protobuf-3.19.3-py2.py3-none-any.whl (162 kB)
Collecting requests<3.0.0,>=2.16.0
Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)
Collecting Werkzeug>=2.0
Using cached Werkzeug-2.0.2-py3-none-any.whl (288 kB)
Collecting itsdangerous>=2.0
Using cached itsdangerous-2.0.1-py3-none-any.whl (18 kB)
Collecting Jinja2>=3.0
Using cached Jinja2-3.0.3-py3-none-any.whl (133 kB)
Requirement already satisfied: click>=7.1.2 in ./env/lib/python3.8/site-packages (from Flask[async]<3.0.0,>=2.0.2->starknet-devnet) (8.0.3)
Collecting asgiref>=3.2; extra == "async"
Using cached asgiref-3.4.1-py3-none-any.whl (25 kB)
Collecting idna>=2.0
Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting typing-extensions>=3.7.4
Using cached typing_extensions-4.0.1-py3-none-any.whl (22 kB)
Collecting mypy-extensions>=0.3.0
Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
Using cached pyparsing-3.0.6-py3-none-any.whl (97 kB)
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.3.2,<0.4.0,>=0.2.1
Using cached eth_keys-0.3.3-py3-none-any.whl (20 kB)
Collecting bitarray<1.3.0,>=1.2.1
Using cached bitarray-1.2.2.tar.gz (48 kB)
Collecting eth-rlp<2,>=0.1.2
Using cached eth_rlp-0.3.0-py3-none-any.whl (5.0 kB)
Collecting rlp<3,>=1.0.0
Using cached rlp-2.0.1-py2.py3-none-any.whl (20 kB)
Collecting multiaddr>=0.0.7
Using cached multiaddr-0.0.9-py2.py3-none-any.whl (16 kB)
Collecting pyrsistent>=0.14.0
Using cached pyrsistent-0.18.1.tar.gz (100 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Requirement already satisfied: setuptools in ./env/lib/python3.8/site-packages (from jsonschema<4.0.0,>=3.2.0->Web3->cairo-lang) (49.2.1)
Collecting parsimonious<0.9.0,>=0.8.0
Using cached parsimonious-0.8.1.tar.gz (45 kB)
Collecting cytoolz<1.0.0,>=0.10.1; implementation_name == "cpython"
Using cached cytoolz-0.11.2.tar.gz (481 kB)
Collecting urllib3<1.27,>=1.21.1
Using cached urllib3-1.26.8-py2.py3-none-any.whl (138 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
Collecting MarkupSafe>=2.0
Using cached MarkupSafe-2.0.1.tar.gz (18 kB)
Collecting netaddr
Using cached netaddr-0.8.0-py2.py3-none-any.whl (1.9 MB)
Collecting varint
Using cached varint-1.0.2.tar.gz (1.9 kB)
Collecting base58
Using cached base58-2.1.1-py3-none-any.whl (5.6 kB)
Collecting toolz>=0.8.0
Using cached toolz-0.11.2-py3-none-any.whl (55 kB)
Using legacy 'setup.py install' for cairo-lang, since package 'wheel' is not installed.
Using legacy 'setup.py install' for frozendict, since package 'wheel' is not installed.
Using legacy 'setup.py install' for pycryptodome, since package 'wheel' is not installed.
Using legacy 'setup.py install' for websockets, since package 'wheel' is not installed.
Using legacy 'setup.py install' for lru-dict, since package 'wheel' is not installed.
Using legacy 'setup.py install' for bitarray, since package 'wheel' is not installed.
Using legacy 'setup.py install' for parsimonious, since package 'wheel' is not installed.
Using legacy 'setup.py install' for cytoolz, since package 'wheel' is not installed.
Using legacy 'setup.py install' for MarkupSafe, since package 'wheel' is not installed.
Using legacy 'setup.py install' for varint, since package 'wheel' is not installed.
Building wheels for collected packages: aiohttp, numpy, PyYAML, multidict, yarl, frozenlist, pyrsistent
Building wheel for aiohttp (PEP 517): started
Building wheel for aiohttp (PEP 517): finished with status 'done'
Created wheel for aiohttp: filename=aiohttp-3.8.1-cp38-cp38-macosx_10_14_arm64.whl size=727455 sha256=148743f4b38440c79ad2a8213575caaa2584f7df0b17f3b4fda80cc4446ee329
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/8a/d8/49/2de846206798bd5b6c7e6d3814ab20465f2252593afb47698f
Building wheel for numpy (PEP 517): started
Building wheel for numpy (PEP 517): finished with status 'error'
Building wheel for PyYAML (PEP 517): started
Building wheel for PyYAML (PEP 517): finished with status 'done'
Created wheel for PyYAML: filename=PyYAML-6.0-cp38-cp38-macosx_10_14_arm64.whl size=45339 sha256=96eebcfdc68c3ed44a02ae80c42df7fb56b807d96047b22408910a7c1a497ead
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/52/84/66/50912fd7bf1639a31758e40bd4312602e104a8eca1e0da9645
Building wheel for multidict (PEP 517): started
Building wheel for multidict (PEP 517): finished with status 'done'
Created wheel for multidict: filename=multidict-5.2.0-cp38-cp38-macosx_10_14_arm64.whl size=64392 sha256=3c9600a6c2199ceae2e5908756d112057f68e4c20bcd586095ca951c44758022
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/cb/1d/38/bdfe293de7fdfdd2a0bd91c93059ffd2eb3f747a63d6018629
Building wheel for yarl (PEP 517): started
Building wheel for yarl (PEP 517): finished with status 'done'
Created wheel for yarl: filename=yarl-1.7.2-cp38-cp38-macosx_10_14_arm64.whl size=154795 sha256=81daf41b10713b47fe9af1e581783f23951031379de8935901cbc1769d452c10
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/96/b2/8f/3bd1c6c0f0a9aa97fe489a67ac64757f045789723e57f3ce0d
Building wheel for frozenlist (PEP 517): started
Building wheel for frozenlist (PEP 517): finished with status 'done'
Created wheel for frozenlist: filename=frozenlist-1.3.0-cp38-cp38-macosx_10_14_arm64.whl size=61809 sha256=4ed2304a2e44875605f3897f8f804de8c35cec2b4335626b93be76c84b2bba02
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/c8/f8/8f/875551eeab5a326af603ee251230723c80a1ce83c3eddf8db1
Building wheel for pyrsistent (PEP 517): started
Building wheel for pyrsistent (PEP 517): finished with status 'done'
Created wheel for pyrsistent: filename=pyrsistent-0.18.1-cp38-cp38-macosx_10_14_arm64.whl size=81445 sha256=c3ddabf3baa7a42084c3e43c5770fa67497342ef7c62f1482c56640115d4766a
Stored in directory: /Users/threepwave/Library/Caches/pip/wheels/30/87/4f/6ac908945dc671cfe494bbb1b0374a5f81238e2d67936a397b
Successfully built aiohttp PyYAML multidict yarl frozenlist pyrsistent
Failed to build numpy