trezor / python-trezor

:snake: Don't use this repo, use the new monorepo instead:
https://github.com/trezor/trezor-firmware
GNU Lesser General Public License v3.0
200 stars 194 forks source link

Installing hidapi with python3 fails #187

Closed dabura667 closed 6 years ago

dabura667 commented 6 years ago

/tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Scanners.c:19:20: fatal error: Python.h: No such file or directory

When running sudo -H pip3 install -r requirements.txt or sudo -H pip3 install trezor

    Complete output from command python setup.py egg_info:
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Scanners.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Actions.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Pythran.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Lexicon.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Scanning.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Parsing.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Visitor.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/FlowControl.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Code.py because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Runtime/refnanny.pyx because it changed.
    Compiling /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Tempita/_tempita.py because it changed.
    [ 1/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Code.py
    [ 2/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/FlowControl.py
    [ 3/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Lexicon.py
    [ 4/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Parsing.py
    [ 5/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Pythran.py
    [ 6/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Scanning.py
    [ 7/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Compiler/Visitor.py
    [ 8/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Actions.py
    [ 9/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Scanners.py
    [10/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Runtime/refnanny.pyx
    [11/11] Cythonizing /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Tempita/_tempita.py
    Unable to find pgen, not compiling formal grammar.
    warning: no files found matching '2to3-fixers.txt'
    warning: no files found matching 'Doc/*'
    warning: no files found matching '*.pyx' under directory 'Cython/Debugger/Tests'
    warning: no files found matching '*.pxd' under directory 'Cython/Debugger/Tests'
    warning: no files found matching '*.pxd' under directory 'Cython/Utility'
    /tmp/easy_install-cakkni2s/Cython-0.27.3/Cython/Plex/Scanners.c:19:20: fatal error: Python.h: そのようなファイルやディレクトリはありません
    compilation terminated.
    Traceback (most recent call last):
      File "/usr/lib/python3.5/distutils/unixccompiler.py", line 118, in _compile
        extra_postargs)
      File "/usr/lib/python3.5/distutils/ccompiler.py", line 909, in spawn
        spawn(cmd, dry_run=self.dry_run)
      File "/usr/lib/python3.5/distutils/spawn.py", line 36, in spawn
        _spawn_posix(cmd, search_path, dry_run=dry_run)
      File "/usr/lib/python3.5/distutils/spawn.py", line 159, in _spawn_posix
        % (cmd, exit_status))
    distutils.errors.DistutilsExecError: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/bdist_egg.py", line 169, in run
        cmd = self.call_command('install_lib', warn_dir=0)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/bdist_egg.py", line 155, in call_command
        self.run_command(cmdname)
      File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/install_lib.py", line 11, in run
        self.build()
      File "/usr/lib/python3.5/distutils/command/install_lib.py", line 109, in build
        self.run_command('build_ext')
      File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/build_ext.py", line 75, in run
        _build_ext.run(self)
      File "/usr/lib/python3.5/distutils/command/build_ext.py", line 338, in run
        self.build_extensions()
      File "/usr/lib/python3.5/distutils/command/build_ext.py", line 447, in build_extensions
        self._build_extensions_serial()
      File "/usr/lib/python3.5/distutils/command/build_ext.py", line 472, in _build_extensions_serial
        self.build_extension(ext)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/build_ext.py", line 196, in build_extension
        _build_ext.build_extension(self, ext)
      File "/usr/lib/python3.5/distutils/command/build_ext.py", line 532, in build_extension
        depends=ext.depends)
      File "/usr/lib/python3.5/distutils/ccompiler.py", line 574, in compile
        self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
      File "/usr/lib/python3.5/distutils/unixccompiler.py", line 120, in _compile
        raise CompileError(msg)
    distutils.errors.CompileError: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 158, in save_modules
        yield saved
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 199, in setup_context
        yield
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 254, in run_setup
        _execfile(setup_script, ns)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 49, in _execfile
        exec(code, globals, locals)
      File "/tmp/easy_install-cakkni2s/Cython-0.27.3/setup.py", line 286, in <module>
      File "/usr/lib/python3.5/distutils/core.py", line 163, in setup
        raise SystemExit("error: " + str(msg))
    SystemExit: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 1104, in run_setup
        run_setup(setup_script, args)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 257, in run_setup
        raise
      File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
        self.gen.throw(type, value, traceback)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 199, in setup_context
        yield
      File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
        self.gen.throw(type, value, traceback)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 170, in save_modules
        saved_exc.resume()
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 145, in resume
        six.reraise(type, exc, self._tb)
      File "/usr/local/lib/python3.5/dist-packages/pkg_resources/_vendor/six.py", line 685, in reraise
        raise value.with_traceback(tb)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 158, in save_modules
        yield saved
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 199, in setup_context
        yield
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 254, in run_setup
        _execfile(setup_script, ns)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/sandbox.py", line 49, in _execfile
        exec(code, globals, locals)
      File "/tmp/easy_install-cakkni2s/Cython-0.27.3/setup.py", line 286, in <module>
      File "/usr/lib/python3.5/distutils/core.py", line 163, in setup
        raise SystemExit("error: " + str(msg))
    SystemExit: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-5v9ey00d/hidapi/setup.py", line 123, in <module>
        install_requires = ['setuptools>=19.0'],
      File "/usr/lib/python3.5/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/dist.py", line 335, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/local/lib/python3.5/dist-packages/setuptools/dist.py", line 456, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 863, in resolve
        replace_conflicting=replace_conflicting
      File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 1141, in best_match
        return self.obtain(req, installer)
      File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 1153, in obtain
        return installer(requirement)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/dist.py", line 522, in fetch_build_egg
        return cmd.easy_install(req)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 672, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 698, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 879, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 1118, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/usr/local/lib/python3.5/dist-packages/setuptools/command/easy_install.py", line 1106, in run_setup
        raise DistutilsError("Setup script exited with %s" % (v.args[0],))
    distutils.errors.DistutilsError: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
saleemrashid commented 6 years ago

Install the Python development headers for your distribution. sudo apt-get install python3-dev for Debian-based distributions or sudo dnf install python3-devel for Fedora-based distributions.

prusnak commented 6 years ago

Reopen if that does not help you

dabura667 commented 6 years ago

sudo apt-get install python3-dev fixed the problem.

Seeing as Electrum now requires python3 it would be nice if you could include the dependencies for python3 in the README so people don't run into the same issues.

Also, unrelated note: @prusnak does wallet.trezor.io support BIP70 payment protocol URIs? (with the r = attribute) I was trying to pay one and couldn't figure it out, which is why I was trying to use Electrum to begin with.

prusnak commented 6 years ago

No, webui does not support BIP70 at the moment.

dabura667 commented 6 years ago

Thanks for the answer. I am looking forward to being able to use BIP70 on webui since Bitpay now doesn't support old URIs for payments, and I have to make monthly payments using Bitpay as the processor :-/

But for now I've got Electrum set up and it's working with BIP49 segwit P2SH addresses.

Love your work. Great product.