Skip to content

pip install error if secp256k1 is installed before pycparser #24

@snarfed

Description

@snarfed

I've been installing secp256k1 happily for a while, but today I saw this error for the first time. ModuleNotFoundError: No module named 'pycparser' seems to be the smoking gun: secp256k1 evidently needs pycparser to build itself, but it doesn't declare that requirement (?), so pip tried to install it before installing pycparser.

Traceback (most recent call last):
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/cparser.py", line 5, in <module>
    from . import _pycparser as pycparser
ImportError: cannot import name '_pycparser' from 'cffi' (/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "<pip-setuptools-caller>", line 35, in <module>
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/setup.py", line 265, in <module>
    setup(
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/__init__.py", line 115, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 148, in setup
    _setup_distribution = dist = klass(attrs)
                                 ^^^^^^^^^^^^
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/dist.py", line 321, in __init__
    _Distribution.__init__(self, dist_attrs)
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 309, in __init__
    self.finalize_options()
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/dist.py", line 784, in finalize_options
    ep(self)
  File "/layers/google.python.runtime/python/lib/python3.12/site-packages/setuptools/dist.py", line 804, in _finalize_setup_keywords
    ep.load()(self, ep.name, value)
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/setuptools_ext.py", line 216, in cffi_modules
    add_cffi_module(dist, cffi_module)
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/setuptools_ext.py", line 49, in add_cffi_module
    execfile(build_file_name, mod_vars)
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/setuptools_ext.py", line 25, in execfile
    exec(code, glob, glob)
  File "_cffi_build/build.py", line 58, in <module>
    if has_system_lib():
       ^^^^^^^^^^^^^^^^
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/setup_support.py", line 107, in has_system_lib
    _has_system_lib = _find_lib()
                      ^^^^^^^^^^^
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/setup_support.py", line 73, in _find_lib
    ffi = FFI()
          ^^^^^
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/api.py", line 65, in __init__
    from . import cparser
  File "/tmp/pip-install-w01zwqqt/secp256k1_377b4ef963b84121a26c071522c92054/.eggs/cffi-1.17.1-py3.12-linux-x86_64.egg/cffi/cparser.py", line 7, in <module>
    import pycparser
ModuleNotFoundError: No module named 'pycparser'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions