LedgerHQ / satstack

Bitcoin full node with Ledger Live
BSD 2-Clause "Simplified" License
158 stars 32 forks source link

ImportError: cannot import name 'iterateints' from 'construct.core' #63

Closed aphex3k closed 2 years ago

aphex3k commented 2 years ago

Steps to reproduce:

$ git clone --depth=1 https://github.com/LedgerHQ/satstack.git 
Cloning into 'satstack'...
remote: Enumerating objects: 1822, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (11/11), done.
fetch-pack: unexpected disconnect while reading sideband packet

$ cd satstack

$ cd scripts

$ python3 -m venv venv  # ensure Python 3.7+

$ source venv/bin/activate

(venv) $ pip install -r requirements.txt
Requirement already satisfied: base58 in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (2.1.1)
Requirement already satisfied: click in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 2)) (8.0.3)
Requirement already satisfied: construct in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 3)) (2.10.67)
Requirement already satisfied: ecdsa in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 4)) (0.17.0)
Requirement already satisfied: ledgerwallet in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 5)) (0.1.2)
Requirement already satisfied: protobuf in ./venv/lib/python3.8/site-packages (from -r requirements.txt (line 6)) (3.19.1)
Requirement already satisfied: six>=1.9.0 in ./venv/lib/python3.8/site-packages (from ecdsa->-r requirements.txt (line 4)) (1.16.0)
Requirement already satisfied: tabulate in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (0.8.9)
Requirement already satisfied: cryptography>=2.5 in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (36.0.0)
Requirement already satisfied: Pillow in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (8.4.0)
Requirement already satisfied: hidapi in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (0.11.0.post2)
Requirement already satisfied: requests in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (2.26.0)
Requirement already satisfied: intelhex in ./venv/lib/python3.8/site-packages (from ledgerwallet->-r requirements.txt (line 5)) (2.3.0)
Requirement already satisfied: cffi>=1.12 in ./venv/lib/python3.8/site-packages (from cryptography>=2.5->ledgerwallet->-r requirements.txt (line 5)) (1.15.0)
Requirement already satisfied: setuptools>=19.0 in ./venv/lib/python3.8/site-packages (from hidapi->ledgerwallet->-r requirements.txt (line 5)) (49.2.1)
Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.8/site-packages (from requests->ledgerwallet->-r requirements.txt (line 5)) (2021.10.8)
Requirement already satisfied: charset-normalizer~=2.0.0 in ./venv/lib/python3.8/site-packages (from requests->ledgerwallet->-r requirements.txt (line 5)) (2.0.8)
Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.8/site-packages (from requests->ledgerwallet->-r requirements.txt (line 5)) (3.3)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./venv/lib/python3.8/site-packages (from requests->ledgerwallet->-r requirements.txt (line 5)) (1.26.7)
Requirement already satisfied: pycparser in ./venv/lib/python3.8/site-packages (from cffi>=1.12->cryptography>=2.5->ledgerwallet->-r requirements.txt (line 5)) (2.21)

(venv) $ ./getdescriptor --scheme native_segwit --chain main --account 3
Traceback (most recent call last):
  File "./getdescriptor", line 11, in <module>
    from ledgerwallet.client import LedgerClient
  File "/Users/michaelhenke/Projects/satstack/scripts/venv/lib/python3.8/site-packages/ledgerwallet/client.py", line 29, in <module>
    from ledgerwallet.manifest import AppManifest
  File "/Users/michaelhenke/Projects/satstack/scripts/venv/lib/python3.8/site-packages/ledgerwallet/manifest.py", line 10, in <module>
    from ledgerwallet import params
  File "/Users/michaelhenke/Projects/satstack/scripts/venv/lib/python3.8/site-packages/ledgerwallet/params.py", line 20, in <module>
    from construct.core import (
ImportError: cannot import name 'iterateints' from 'construct.core' (/Users/michaelhenke/Projects/satstack/scripts/venv/lib/python3.8/site-packages/construct/core.py)

latest pip installed:

(venv) $ python3 -m pip install --upgrade pip
Requirement already satisfied: pip in ./venv/lib/python3.8/site-packages (21.3.1)
dlq84 commented 2 years ago

This project seems dead... Here's a solution to this problem though:

In the scripts/requirements.txt replace construct with construct==2.9.52 and re-run pip install -r requirements.txt

adrienlacombe commented 2 years ago

Hi, this is now fixed.