Skip to content

Error ModuleNotFoundError: No module named 'elftools.common.py3compat' #3

@clach04

Description

@clach04

Installing from pip (PyPi or source code checkout) of https://pypi.org/project/pyelfwrapper/0.0.5/ fails with traceback for pyelftools when importing elfwrapper.elf_wrapper

Testcase

(py3venv) C:\code\py\elf_dwarf_coff_object_formats\pyelfwrapper>pip install -e .
Obtaining file:///C:/code/py/elf_dwarf_coff_object_formats/pyelfwrapper
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Collecting pyelftools (from pyelfwrapper==0.0.5)
  Obtaining dependency information for pyelftools from https://files.pythonhosted.org/packages/f8/64/711030d9fe9ccaf6ee3ab1bcf4801c6bb3d0e585af18824a50b016b4f39c/pyelftools-0.31-py3-none-any.whl.metadata
  Downloading pyelftools-0.31-py3-none-any.whl.metadata (381 bytes)
Downloading pyelftools-0.31-py3-none-any.whl (180 kB)
   ---------------------------------------- 180.5/180.5 kB 838.6 kB/s eta 0:00:00
Building wheels for collected packages: pyelfwrapper
  Building editable for pyelfwrapper (pyproject.toml) ... done
  Created wheel for pyelfwrapper: filename=pyelfwrapper-0.0.5-0.editable-py3-none-any.whl size=4378 sha256=d5942212f8418bc510c659acdda6607265e8a21d93f1818d508bc345971bab17
  Stored in directory: C:\Users\clach04\AppData\Local\Temp\pip-ephem-wheel-cache-dtn4vsmt\wheels\73\46\29\809964592349a5595da5951695418194c0d6954ad09e8a2f77
Successfully built pyelfwrapper
Installing collected packages: pyelftools, pyelfwrapper
Successfully installed pyelftools-0.31 pyelfwrapper-0.0.5

[notice] A new release of pip is available: 23.2.1 -> 24.2
[notice] To update, run: python.exe -m pip install --upgrade pip

(py3venv) C:\code\py\elf_dwarf_coff_object_formats\pyelfwrapper>python
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec  7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import elfwrapper
>>> import elfwrapper.elf_wrapper
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\code\py\elf_dwarf_coff_object_formats\pyelfwrapper\elfwrapper\elf_wrapper.py", line 3, in <module>
    from elftools.common.py3compat import (
ModuleNotFoundError: No module named 'elftools.common.py3compat'
>>> exit()

Appears to be due to unpinned pyelftools version dependency

(py3venv) C:\code\py\elf_dwarf_coff_object_formats\pyelfwrapper>pip list pyelftools
Package      Version Editable project location
------------ ------- -----------------------------------------------------
pip          23.2.1
pyelftools   0.31
pyelfwrapper 0.0.5   C:\code\py\elf_dwarf_coff_object_formats\pyelfwrapper

Workaround

Use an older version of https://pypi.org/project/pyelftools/0.29/ (from late 2022).

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