Web3.py – Fixing Installation Errors When Installing Web3.py from Source on Mac-OSX

mac-osxpythonweb3.py

Trying to install web3.py from source and getting this error when doing a pip install -e . inside the web3 directory.

RuntimeError: Format missing, but need one (identified source as text as no file with that name was found).

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/

Reference: https://pypi.python.org/pypi/web3/3.16.2

Output:

$ pip install -e .
Obtaining file:///Users/joeyz/Projects/Eth/web3.py
Collecting cytoolz>=0.8.2 (from web3==4.0.0b2)
  Downloading cytoolz-0.9.0.tar.gz (443kB)
    100% |████████████████████████████████| 450kB 2.1MB/s 
Collecting ethereum-abi-utils>=0.4.3 (from web3==4.0.0b2)
  Using cached ethereum-abi-utils-0.4.7.tar.gz
Collecting ethereum-keyfile>=0.3.0 (from web3==4.0.0b2)
  Using cached ethereum-keyfile-0.3.1.tar.gz
    Complete output from command python setup.py egg_info:
    Maybe try:

        brew install pandoc
    See http://johnmacfarlane.net/pandoc/installing.html
    for installation options
    ---------------------------------------------------------------

    zip_safe flag not set; analyzing archive contents...
    pypandoc.__init__: module references __file__


    !!! pandoc not found, long_description is bad, don't upload this to PyPI !!!



    Installed /private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/.eggs/pypandoc-1.4-py2.7.egg
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/setup.py", line 33, in <module>
        'Programming Language :: Python :: 3.5',
      File "/Users/joeyz/Projects/Eth/web3.py/venv/lib/python2.7/site-packages/setuptools/__init__.py", line 129, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/Users/joeyz/Projects/Eth/web3.py/venv/lib/python2.7/site-packages/setuptools/dist.py", line 333, in __init__
        _Distribution.__init__(self, attrs)
      File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 287, in __init__
        self.finalize_options()
      File "/Users/joeyz/Projects/Eth/web3.py/venv/lib/python2.7/site-packages/setuptools/dist.py", line 476, in finalize_options
        ep.load()(self, ep.name, value)
      File "/private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/.eggs/setuptools_markdown-0.2-py2.7.egg/setuptools_markdown.py", line 22, in long_description_markdown_filename
        output = pypandoc.convert(markdown_filename, 'rst')
      File "/private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/.eggs/pypandoc-1.4-py2.7.egg/pypandoc/__init__.py", line 66, in convert
        raise RuntimeError("Format missing, but need one (identified source as text as no "
    RuntimeError: Format missing, but need one (identified source as text as no file with that name was found).

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/t2/g8zfp3jd5y388nvcx5_f9qm00000gn/T/pip-build-AjPzos/ethereum-keyfile/

Best Answer

web3.py v4 is py3-only, and it appears that you're trying to build it with python2.7

If you want to build v3, which still supports py2, then check out the v3 branch before running pip install. Note that v3 is on its way out, and v4 will go stable realsoonnow.


It also looks like you're getting a documentation build error.

Maybe try:

    brew install pandoc

Did you try this ^ ?