Error while installing Blockcerts for use with Ethereum

Okay, so I followed the guide on the README and the Quick Start worked out fine, but when I tried to follow the instructions for Ethereum I got an error with the following command:
python experimental --blockchain=ethereum
The error was:
ImportError: No module named pip

But then I changed the command to ‘python3 …’ because I saw that in the Dockerfile only pip3 is being installed, but then I got another error saying
AttributeError: module ‘pip’ has no attribute ‘main’

I searched for it on the internet and it seems that since the latest versions of pip there is no ‘main’ and therefore I downgraded pip with
pip3 install --upgrade pip==9.0.3

But then I got the following error:
Traceback (most recent call last):
File “/usr/lib/python3.6/site-packages/pip/”, line 215, in main
status =, args)
File “/usr/lib/python3.6/site-packages/pip/commands/”, line 312, in run
File “/usr/lib/python3.6/site-packages/pip/”, line 276, in populate_requirement_set
File “/usr/lib/python3.6/site-packages/pip/req/”, line 185, in from_line
name = name.strip()
AttributeError: ‘list’ object has no attribute ‘strip’

Now I don’t know what to do… I’d be greatful if someone could tell me what I’m doing wrong. Also, I’m not sure if I’m supposed to but I’m doing all of this inside Docker.


Hi @NinateTT,
We’re investigating this issue. We should have an update in a week or so.

Hey @NinateTT,

I ran into the same issue with pip 10 as well. I’ve fixed both of those issues and it’s been merged in. Please pull down the latest code and let us know if that doesn’t do it for you!


Hi @aronning,
thank you for the fast reply. It did fix the issue on the installation, but I still can’t run it.
When I run the command indicated on the guide – python3 cert-issuer -c conf_ethtest.ini – I get the error
python3: can’t open file ‘cert-issuer’: [Errno 2] No such file or directory.
So I tried running the standalone command:
cert-issuer -c conf_ethtest.ini
and it runs, but gives the following output:
WARNING - Your app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
INFO - This run will try to issue on the ethereum_ropsten chain
Traceback (most recent call last):
File “/usr/bin/cert-issuer”, line 11, in
load_entry_point(‘cert-issuer==2.0.12’, ‘console_scripts’, ‘cert-issuer’)()
File “/usr/lib/python3.6/site-packages/cert_issuer/”, line 17, in cert_issuer_main
File “/usr/lib/python3.6/site-packages/cert_issuer/”, line 32, in main
from cert_issuer import ethereum
File “/usr/lib/python3.6/site-packages/cert_issuer/ethereum/”, line 9, in
from cert_issuer.ethereum.signer import EthereumSigner
File “/usr/lib/python3.6/site-packages/cert_issuer/ethereum/”, line 2, in
from ethereum import transactions
File “/usr/lib/python3.6/site-packages/ethereum/”, line 11, in
from . import slogging # noqa
File “/usr/lib/python3.6/site-packages/ethereum/”, line 6, in
from ethereum.utils import bcolors, is_numeric
File “/usr/lib/python3.6/site-packages/ethereum/”, line 13, in
from rlp.utils import decode_hex, encode_hex, ascii_chr, str_to_bytes
ImportError: cannot import name ‘decode_hex’

From the message I’d think the problem is in the rlp.utils module which is not part of Blockcerts, but just in case it is something you can solve or at least show me a workaround…

Thanks again.

Moving along right with you this morning @NinateTT, reproduced the same error on my end. Hopefully we can get something figured out for you sometime today.



Opened a ticket on it here:

Solution seems to be downgrading RLP to below 1 in the ethereum_requirements.txt file:


Recent problem with pyethereum. Hopefully fixed soon but for now it needs to be below 1.

Edit: It’s been merged in so feel free to pull down the latest code again.

1 Like

Thanks, @aronning, works like a charm!
I’d just like to give a heads-up that when you install the cert-issuer, it generates the config file for ethereum with a field ‘blockchain = …’ when it should be ‘chain = …’, which makes the program ignore that line and use the bitcoin blockchain instead, but aside from that everything works like expected. Thanks a lot!