# No module named 'ethereum' for cert-issuer Python

**URL:** https://community.blockcerts.org/t/no-module-named-ethereum-for-cert-issuer-python/2349
**Category:** Technical
**Created:** [February 18, 2020, 5:56am UTC](https://community.blockcerts.org/t/no-module-named-ethereum-for-cert-issuer-python/2349 "2020-02-18T05:56:45Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![arycloud](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@arycloud](https://community.blockcerts.org/u/arycloud)
#### Post date: [February 18, 2020, 5:56am UTC](https://community.blockcerts.org/t/no-module-named-ethereum-for-cert-issuer-python/2349/1 "2020-02-18T05:56:45Z")

</div>

I’m just getting started with Blockcert-python and trying to run it on my local system.

Here are the steps I did:

1. Clone the cert-issuer GitHub repo
2. Create a virtual environment for Python 3.5.4 on Mac OS
3. Run `python setup.py experimental --blockchain=etheruem` command
4. It gives an error, then I edit the site-packages to fix the pysha3 version conflict
5. Then I configure the `conf.ini` and put all the necessary information like issuer\_address etc.
6. after that, I run `python setup.py install` and it goes well
7. Now when I run `cert-issuer -c conf.ini`, it gives an error that `no module named rpl`
8. Then I install the `rpl` module and forced its version below 1.
9. Now, it’s giving another error as `ImportError: No module named 'ethereum'`

and here’s the complete error statement:

> 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 “/Users/abdul/PycharmProjects/cert-issuer/venv/bin/cert-issuer”, line 11, in   
> load\_entry\_point(‘cert-issuer==2.0.22’, ‘console\_scripts’, ‘cert-issuer’)()  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/ **main**.py”, line 17, in cert\_issuer\_main  
> issue\_certificates.main(parsed\_config)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/issue\_certificates.py”, line 31, in main  
> from cert\_issuer.blockchain\_handlers import ethereum  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/blockchain\_handlers/ethereum/ **init**.py”, line 9, in   
> from cert\_issuer.blockchain\_handlers.ethereum.signer import EthereumSigner  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/blockchain\_handlers/ethereum/signer.py”, line 2, in   
> from ethereum import transactions  
> ImportError: No module named ‘ethereum’

---

<div class="post-metadata">

### Author: ![aronning](https://avatars.discourse-cdn.com/v4/letter/a/47e85d/32.png) [@aronning](https://community.blockcerts.org/u/aronning)
#### Post date: [February 18, 2020, 2:34pm UTC](https://community.blockcerts.org/t/no-module-named-ethereum-for-cert-issuer-python/2349/2 "2020-02-18T14:34:29Z")

</div>

I think the problem is that you’re overriding your first installation by running `python setup.py install` after `python setup.py experimental --blockchain=etheruem`.

Only run `python setup.py experimental --blockchain=etheruem` if you intend on using ethereum.

---

<div class="post-metadata">

### Author: ![arycloud](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@arycloud](https://community.blockcerts.org/u/arycloud)
#### Post date: [February 18, 2020, 3:09pm UTC](https://community.blockcerts.org/t/no-module-named-ethereum-for-cert-issuer-python/2349/3 "2020-02-18T15:09:56Z")

</div>

I have to run it for ethereum, so If I run `python setup.py experimental --blockchain=etheruem` it gives another error as: `AssertionError: Invalid blockchain!`  
My other installation was work on this step but it was giving a different error while issuing( **cert-issuer -c conf.ini** ) the certificate.  
Here’s the complete Traceback:

> Traceback (most recent call last):  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/bin/cert-issuer”, line 11, in   
> load\_entry\_point(‘cert-issuer==2.0.22’, ‘console\_scripts’, ‘cert-issuer’)()  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/ **main**.py”, line 17, in cert\_issuer\_main  
> issue\_certificates.main(parsed\_config)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/issue\_certificates.py”, line 36, in main  
> return issue(app\_config, certificate\_batch\_handler, transaction\_handler)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/issue\_certificates.py”, line 22, in issue  
> tx\_id = issuer.issue(app\_config.chain)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/issuer.py”, line 27, in issue  
> txid = self.transaction\_handler.issue\_transaction(blockchain\_bytes)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/blockchain\_handlers/ethereum/transaction\_handlers.py”, line 61, in issue\_transaction  
> self.verify\_transaction(signed\_tx, eth\_data\_field)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/blockchain\_handlers/ethereum/transaction\_handlers.py”, line 92, in verify\_transaction  
> tx\_utils.verify\_eth\_transaction(signed\_tx, eth\_data\_field)  
> File “/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert\_issuer-2.0.22-py3.5.egg/cert\_issuer/blockchain\_handlers/ethereum/tx\_utils.py”, line 24, in verify\_eth\_transaction  
> for s in signed\_hextx.split(‘80a0’):  
> **AttributeError: ‘dict’ object has no attribute ‘split’**
