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:
pip freeze
outputWhat was wrong?
With the latest beta of
web3
(6.0.0b9), theethpm
package cannot be imported anymore due to missingbase58
.Steps to reproduce (e.g., linux):
And because the
pytest11
entry-pointweb3.tools.pytest_ethereum.plugins
importsethpm
, any attempt to runpytest
in an environment withweb3==6.0.0b9
installed ends up with an error unlessbase58
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 ofipfs
extra, so it is not installed by default.How can it be fixed?
base58
should be added to directweb3
dependencies.