GregBowyer / cld2-cffi

Python bindings to the Compact Language Detector
Apache License 2.0
32 stars 10 forks source link

python3 ubuntu pip install issue #18

Closed gjthompson1 closed 7 years ago

gjthompson1 commented 7 years ago

Can't seem to pip install:

Ubuntu:

No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial

Python 3.6.2

I have

six==1.10.0 cffi==1.10.0

Trace:

Collecting cld2-cffi
  Downloading cld2-cffi-0.1.4.tar.gz (17.6MB)
    100% |████████████████████████████████| 17.6MB 84kB/s
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info/cld2_cffi.egg-info
    writing pip-egg-info/cld2_cffi.egg-info/PKG-INFO
    writing dependency_links to pip-egg-info/cld2_cffi.egg-info/dependency_links.txt
    writing requirements to pip-egg-info/cld2_cffi.egg-info/requires.txt
    writing top-level names to pip-egg-info/cld2_cffi.egg-info/top_level.txt
    writing manifest file 'pip-egg-info/cld2_cffi.egg-info/SOURCES.txt'
    warning: manifest_maker: standard file '-c' not found

    cld2/__pycache__/_cffi__x8faeddebx1977d085.c:2:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    Traceback (most recent call last):
      File "/usr/lib/python3.6/distutils/unixccompiler.py", line 118, in _compile
        extra_postargs)
      File "/usr/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
        spawn(cmd, dry_run=self.dry_run)
      File "/usr/lib/python3.6/distutils/spawn.py", line 36, in spawn
        _spawn_posix(cmd, search_path, dry_run=dry_run)
      File "/usr/lib/python3.6/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/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 49, in _build
        dist.run_command('build_ext')
      File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 49, in run
        _build_ext.run(self)
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 339, in run
        self.build_extensions()
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
        self._build_extensions_serial()
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
        self.build_extension(ext)
      File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 174, in build_extension
        _build_ext.build_extension(self, ext)
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
        depends=ext.depends)
      File "/usr/lib/python3.6/distutils/ccompiler.py", line 574, in compile
        self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
      File "/usr/lib/python3.6/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 "<string>", line 1, in <module>
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 191, in <module>
        'Topic :: Text Processing :: Linguistic'
      File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 186, in run
        self.find_sources()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 209, in find_sources
        mm.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 293, in run
        self.add_defaults()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 322, in add_defaults
        sdist.add_defaults(self)
      File "/usr/lib/python3/dist-packages/setuptools/command/sdist.py", line 120, in add_defaults
        build_py = self.get_finalized_command('build_py')
      File "/usr/lib/python3.6/distutils/cmd.py", line 299, in get_finalized_command
        cmd_obj.ensure_finalized()
      File "/usr/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
        self.finalize_options()
      File "/usr/lib/python3/dist-packages/setuptools/command/build_py.py", line 33, in finalize_options
        orig.build_py.finalize_options(self)
      File "/usr/lib/python3.6/distutils/command/build_py.py", line 45, in finalize_options
        ('force', 'force'))
      File "/usr/lib/python3.6/distutils/cmd.py", line 287, in set_undefined_options
        src_cmd_obj.ensure_finalized()
      File "/usr/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
        self.finalize_options()
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 143, in finalize_options
        self.distribution.ext_modules = get_ext_modules()
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 128, in get_ext_modules
        import cld2
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/cld2/__init__.py", line 190, in <module>
        extra_compile_args=_COMPILER_ARGS)
      File "/usr/local/lib/python3.6/dist-packages/cffi/api.py", line 438, in verify
        lib = self.verifier.load_library()
      File "/usr/local/lib/python3.6/dist-packages/cffi/verifier.py", line 114, in load_library
        self._compile_module()
      File "/usr/local/lib/python3.6/dist-packages/cffi/verifier.py", line 211, in _compile_module
        outputfilename = ffiplatform.compile(tmpdir, self.get_extension())
      File "/usr/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 20, in compile
        outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
      File "/usr/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 56, in _build
        raise VerificationError('%s: %s' % (e.__class__.__name__, e))
    cffi.error.VerificationError: CompileError: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    Error in sys.excepthook:
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
        from apport.fileutils import likely_packaged, get_recent_crashes
      File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
        from apport.report import Report
      File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
        import apport.fileutils
      File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
        from apport.packaging_impl import impl as packaging
      File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
        import apt
      File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
        import apt_pkg
    ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
    Traceback (most recent call last):
      File "/usr/lib/python3.6/distutils/unixccompiler.py", line 118, in _compile
        extra_postargs)
      File "/usr/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
        spawn(cmd, dry_run=self.dry_run)
      File "/usr/lib/python3.6/distutils/spawn.py", line 36, in spawn
        _spawn_posix(cmd, search_path, dry_run=dry_run)
      File "/usr/lib/python3.6/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/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 49, in _build
        dist.run_command('build_ext')
      File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 49, in run
        _build_ext.run(self)
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 339, in run
        self.build_extensions()
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
        self._build_extensions_serial()
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
        self.build_extension(ext)
      File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 174, in build_extension
        _build_ext.build_extension(self, ext)
      File "/usr/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
        depends=ext.depends)
      File "/usr/lib/python3.6/distutils/ccompiler.py", line 574, in compile
        self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
      File "/usr/lib/python3.6/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 "<string>", line 1, in <module>
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 191, in <module>
        'Topic :: Text Processing :: Linguistic'
      File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 186, in run
        self.find_sources()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 209, in find_sources
        mm.run()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 293, in run
        self.add_defaults()
      File "/usr/lib/python3/dist-packages/setuptools/command/egg_info.py", line 322, in add_defaults
        sdist.add_defaults(self)
      File "/usr/lib/python3/dist-packages/setuptools/command/sdist.py", line 120, in add_defaults
        build_py = self.get_finalized_command('build_py')
      File "/usr/lib/python3.6/distutils/cmd.py", line 299, in get_finalized_command
        cmd_obj.ensure_finalized()
      File "/usr/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
        self.finalize_options()
      File "/usr/lib/python3/dist-packages/setuptools/command/build_py.py", line 33, in finalize_options
        orig.build_py.finalize_options(self)
      File "/usr/lib/python3.6/distutils/command/build_py.py", line 45, in finalize_options
        ('force', 'force'))
      File "/usr/lib/python3.6/distutils/cmd.py", line 287, in set_undefined_options
        src_cmd_obj.ensure_finalized()
      File "/usr/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
        self.finalize_options()
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 143, in finalize_options
        self.distribution.ext_modules = get_ext_modules()
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/setup.py", line 128, in get_ext_modules
        import cld2
      File "/tmp/pip-build-_ew3e3tx/cld2-cffi/cld2/__init__.py", line 190, in <module>
        extra_compile_args=_COMPILER_ARGS)
      File "/usr/local/lib/python3.6/dist-packages/cffi/api.py", line 438, in verify
        lib = self.verifier.load_library()
      File "/usr/local/lib/python3.6/dist-packages/cffi/verifier.py", line 114, in load_library
        self._compile_module()
      File "/usr/local/lib/python3.6/dist-packages/cffi/verifier.py", line 211, in _compile_module
        outputfilename = ffiplatform.compile(tmpdir, self.get_extension())
      File "/usr/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 20, in compile
        outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
      File "/usr/local/lib/python3.6/dist-packages/cffi/ffiplatform.py", line 56, in _build
        raise VerificationError('%s: %s' % (e.__class__.__name__, e))
    cffi.error.VerificationError: CompileError: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-_ew3e3tx/cld2-cffi/
gjthompson1 commented 7 years ago

Not sure what was wrong with my ubuntu version but I just decided to go with docker as a work around;

Dockerfile

# App environment
FROM ubuntu:latest

RUN apt-get update -y
RUN apt-get install -y python3-pip python3-dev libffi-dev

RUN apt-get install -y vim

COPY requirements.txt /tmp/
RUN pip3 install --requirement /tmp/requirements.txt

requirements.txt

cld2-cffi==0.1.4