Merkletools/pysha dependency conflict

Hey guys, I am trying to run “python3 setup.py experimental --blockchain=ethereum”

And I keep bumping into the error “merkletools 1.0.2 has requirement pysha3==1.0b1, but you’ll have pysha3 1.0.2 which is incompatible.”

I found this post: Merkletools dependences pysha3

And have been following the instructions for MACOS. I would like to manually change to merkletools (==1.0.2) to merkletools (>=1.0.3), but I looked into my Python3 folder and there is no merkletools package in my site-packages folder. Any help is appreciated, thanks!

Follow up question: is the merkletools folder originally included in the site-packages folder of python3 when i download it or do i need to download it?

I believe it’s something that is handled whenever you try to setup/install cert-issuer.

There’s 2 ways I know of handling this, either changing the merkletools requirement from 1.0.2 to 1.0.3, or changing pysha3 requirement from 1.0b1 to 1.0.2.

To change merkletools to 1.0.3, then you want to look for

 site-packages/chainpoint-0.0.2.dist-info/METADATA

To change pysha3 to 1.0.2, then you want to look for

 site-packages/merkletools-1.0.2-py3.*.egg-info/requires.txt

Our docker file includes this hack by doing a ‘sed’ on the merkletools requires.txt, but until we can get the underlying packages to update dependencies, I’m not sure of any other solutions to this.

1 Like

If not using Docker, and using virtualenv, you can:

sed -i s/==1.0b1/==1.0.2/g ./venv/lib/python3.5/site-packages/merkletools-1.0.2.dist-info/METADATA

Thanks for the info, it really helped us to find the error… but it got few more updates… If you are running it outside the docker using virtualenv, few problems occurred for us… first of all if you’re running python 3.6 or 3.7, you should make appropriate changes in the command, and sometimes METADATA is not appearing, results in no file or directory error, in that case you can navigate to “/merkletools-1.0.2-py3.6.egg/EGG-INFO/requires.txt” and make a small change from “pysha3==1.0b1” to “pysha3>=1.0b1”, save the changed and re-run the setup.py. Boom… Now it works like charm !!!

Running into this issue here. When I go into the merkeltools requires.txt and make the change it just causes the cert-issuer to crash python. This is on Mac OSX. Even if the requirement is changed to pysha3>=1.0b1 still causes a crash. Thanks in advance!