Merkletools/pysha dependency conflict


#1

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!


#2

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?


#3

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.


#4

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


#5

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 !!!