-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Description
- Version: 6.0.0b9
- Python: 3.x
- OS: linux (but applicable to all)
pip freeze
output
aiohttp==3.8.3
aiosignal==1.3.1
async-timeout==4.0.2
attrs==22.2.0
bitarray==2.6.2
certifi==2022.12.7
charset-normalizer==2.1.1
cytoolz==0.12.1
eth-abi==4.0.0b2
eth-account==0.8.0
eth-hash==0.5.1
eth-keyfile==0.6.0
eth-keys==0.4.0
eth-rlp==0.3.0
eth-typing==3.2.0
eth-utils==2.1.0
frozenlist==1.3.3
hexbytes==0.3.0
idna==3.4
jsonschema==4.17.3
lru-dict==1.1.8
multidict==6.0.4
parsimonious==0.9.0
protobuf==4.21.12
pycryptodome==3.16.0
pyrsistent==0.19.3
regex==2022.10.31
requests==2.28.1
rlp==3.0.0
toolz==0.12.0
urllib3==1.26.13
web3==6.0.0b9
websockets==10.4
yarl==1.8.2
What was wrong?
With the latest beta of web3
(6.0.0b9), the ethpm
package cannot be imported anymore due to missing base58
.
Steps to reproduce (e.g., linux):
python3.9 -m venv venv
. venv/bin/activate
pip install web3==6.0.0b9
python -c "import ethpm"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/rok/tmp/web3-test/venv/lib64/python3.9/site-packages/ethpm/__init__.py", line 19, in <module>
from .package import Package # noqa: E402, F401
File "/home/rok/tmp/web3-test/venv/lib64/python3.9/site-packages/ethpm/package.py", line 47, in <module>
from ethpm.dependencies import (
File "/home/rok/tmp/web3-test/venv/lib64/python3.9/site-packages/ethpm/dependencies.py", line 7, in <module>
from ethpm.validation.package import (
File "/home/rok/tmp/web3-test/venv/lib64/python3.9/site-packages/ethpm/validation/package.py", line 11, in <module>
from ethpm._utils.ipfs import (
File "/home/rok/tmp/web3-test/venv/lib64/python3.9/site-packages/ethpm/_utils/ipfs.py", line 12, in <module>
from base58 import (
ModuleNotFoundError: No module named 'base58'
And because the pytest11
entry-point web3.tools.pytest_ethereum.plugins
imports ethpm
, any attempt to run pytest
in an environment with web3==6.0.0b9
installed ends up with an error unless base58
is explicitly installed.
In the previous release, the base58
package was implicitly installed due to the following dependency chain:
web3==6.0.0b8
-> ipfshttpclient==0.8.0a2
-> multiaddr>=0.0.7
-> base58
But with web3==6.0.0b9
, ipfshttpclient
became an optional dependency that is installed as part of ipfs
extra, so it is not installed by default.
How can it be fixed?
base58
should be added to direct web3
dependencies.
fselmo
Metadata
Metadata
Assignees
Labels
No labels