Web3.py: AttributeError: type object 'Callable' has no attribute '_abc_registry'

Created on 29 Apr 2019  路  5Comments  路  Source: ethereum/web3.py

  • Version: 4.9.2
  • Python: 3.7
  • OS: win10
  • pip freeze output
alabaster==0.7.11
asn1crypto==0.24.0
astroid==2.0
attrdict==2.0.0
Babel==2.6.0
backcall==0.1.0
bencode.py==2.0.0
bitcoin==1.1.42
bleach==2.1.3
blessings==1.7
bpython==0.17.1
certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
click==6.7
cloudpickle==0.5.3
colorama==0.3.9
cryptography==2.3
curses==2.2+utf8
curtsies==0.3.0
cytoolz==0.9.0.1
decorator==4.3.0
Django==2.1.2
docopt==0.6.2
docutils==0.14
ecdsa==0.13
entrypoints==0.2.3
eth-abi==1.2.2
eth-account==0.3.0
eth-hash==0.2.0
eth-keyfile==0.5.1
eth-keys==0.2.0b3
eth-rlp==0.1.2
eth-typing==1.3.0
eth-utils==1.2.2
ez-setup==0.9
Flask==1.0.2
Flask-Cors==3.0.6
greenlet==0.4.15
hexbytes==0.1.0
html5lib==1.0.1
idna==2.7
imagesize==1.0.0
ipykernel==4.8.2
ipython==6.4.0
ipython-genutils==0.2.0
ipywidgets==7.4.1
isort==4.3.4
itsdangerous==0.24
jedi==0.12.1
jgraph==0.2.1
Jinja2==2.10
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.2.3
jupyter-console==5.2.0
jupyter-core==4.4.0
keyring==13.2.1
lazy-object-proxy==1.3.1
lru-dict==1.1.6
MarkupSafe==1.0
mccabe==0.6.1
mistune==0.8.3
mysql-connector-python==8.0.13
nbconvert==5.3.1
nbformat==4.4.0
notebook==5.6.0
numpy==1.15.2
numpydoc==0.8.0
packaging==17.1
pandas==0.23.4
pandocfilters==1.4.2
parsimonious==0.8.1
parso==0.3.1
pickleshare==0.7.4
plotly==3.3.0
prometheus-client==0.3.1
prompt-toolkit==1.0.15
psutil==5.4.6
psycopg2==2.7.6.1
ptpython==0.41
pycodestyle==2.4.0
pycparser==2.18
pycryptodome==3.6.6
pyethereum==1.0.0
pyflakes==2.0.0
Pygments==2.2.0
pylint==2.0.0
pymssql==2.1.4
PyMySQL==0.9.2
pyodbc==4.0.23
pyparsing==2.2.0
pypiwin32==223
PyQt5==5.9.2
pysha3==1.0.2
python-dateutil==2.7.3
pytz==2018.5
pywin32==224
pywin32-ctypes==0.1.2
pywinpty==0.5.4
pyzmq==17.1.0
qiniu==7.2.2
QtAwesome==0.4.4
qtconsole==4.3.1
QtPy==1.4.2
requests==2.19.1
retrying==1.3.3
rlp==1.0.3
rope==0.10.7
Send2Trash==1.5.0
simplegeneric==0.8.1
simplejson==3.16.0
sip==4.19.8
six==1.11.0
snowballstemmer==1.2.1
Sphinx==1.7.6
sphinxcontrib-websupport==1.1.0
spyder==3.3.0
spyder-kernels==0.2.4
starkbank-ecdsa==0.1.4
style==1.1.0
terminado==0.8.1
testpath==0.3.1
toolz==0.9.0
tornado==5.1
tqdm==4.26.0
traitlets==4.3.2
trie==1.3.8
typing==3.6.6
update==0.0.1
upload==0.1.1
urllib3==1.23
urwid==2.0.1
wcwidth==0.1.7
web3==4.9.2
webencodings==0.5.1
websockets==6.0
Werkzeug==0.14.1
widgetsnbextension==3.4.1
wrapt==1.10.11
you-get==0.4.1256
youtube-dl==2019.3.9

What was wrong?

Please include any of the following that are applicable:

  • The code which produced the error
>>> import web3
  • The full output of the error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python37\Lib\site-packages\web3\__init__.py", line 7, in <module>
    from eth_account import Account  # noqa: E402
  File "C:\Python37\Lib\site-packages\eth_account\__init__.py", line 1, in <module>
    from eth_account.account import Account  # noqa: F401
  File "C:\Python37\Lib\site-packages\eth_account\account.py", line 10, in <module>
    from eth_keyfile import (
  File "C:\Python37\Lib\site-packages\eth_keyfile\__init__.py", line 7, in <module>
    from eth_keyfile.keyfile import (  # noqa: F401
  File "C:\Python37\Lib\site-packages\eth_keyfile\keyfile.py", line 10, in <module>
    from eth_keys import keys
  File "C:\Python37\Lib\site-packages\eth_keys\__init__.py", line 15, in <module>
    from .main import (  # noqa: F401
  File "C:\Python37\Lib\site-packages\eth_keys\main.py", line 1, in <module>
    from typing import (Any, Union, Type)  # noqa: F401
  File "C:\Python37\Lib\site-packages\typing.py", line 1356, in <module>
    class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
  File "C:\Python37\Lib\site-packages\typing.py", line 1004, in __new__
    self._abc_registry = extra._abc_registry
AttributeError: type object 'Callable' has no attribute '_abc_registry'
  • What type of node you were connecting to.
    NO connecting

How can it be fixed?

I have no idea.
Please help me, thanks.

Most helpful comment

I solved this problem with pip uninstall typing

All 5 comments

I solved this problem with pip uninstall typing

Glad you figured it out. Sorry for the long response time!

When using Pip version 20.1 (released 29/04/2020), the solution of uninstalling the typing package no longer works for some reason. An easy workaround is to ensure you're using the previous version of Pip, 20.0.2, where this solution still works.

@jordanmkoncz which version of web3 are you using?

@kclowes I am actually not using web3 personally. However I ran into the exact error that's discussed here (AttributeError: type object 'Callable' has no attribute '_abc_registry') and so I thought I'd mention that the proposed solution of uninstalling typing appears to have stopped working with the new version of Pip, in case others run into the same problem.

Was this page helpful?
0 / 5 - 0 ratings