benlansdell / ethome

Tools for machine learning of animal behavior
https://benlansdell.github.io/ethome/
MIT License
12 stars 1 forks source link

Compatibility with Poetry #1

Open imcatta opened 1 year ago

imcatta commented 1 year ago

Hi! I'm one of the reviewers of your JOSS submission openjournals/joss-reviews#5623.

I noticed that ethome-ml fails to install when using Poetry, a widely used and advanced Python package manager. I do not consider this as acceptance-blocking as the package can be installed successfully using PIP, but I thought you might want to know.

Steps to reproduce

OS: Ubuntu 22.04 (WSL)

$ poetry add ethome-ml
Using version ^0.6.0 for ethome-ml

Updating dependencies
Resolving dependencies... (5.3s)

Package operations: 74 installs, 1 update, 0 removals

  • Installing attrs (23.1.0)
  • Installing rpds-py (0.8.10)
  • Installing six (1.16.0)
  • Installing asttokens (2.2.1)
  • Installing executing (1.2.0)
  • Installing numpy (1.25.1)
  • Installing parso (0.8.3)
  • Installing platformdirs (3.8.1)
  • Installing ptyprocess (0.7.0)
  • Installing pure-eval (0.2.2)
  • Installing referencing (0.29.1)
  • Installing traitlets (5.9.0)
  • Installing wcwidth (0.2.6)
  • Installing backcall (0.2.0)
  • Installing decorator (5.1.1)
  • Installing jedi (0.18.2): Installing...
  • Installing joblib (1.3.1)
  • Installing jsonschema-specifications (2023.6.1)
  • Installing jupyter-core (5.3.1)
  • Installing llvmlite (0.34.0): Preparing...
  • Installing matplotlib-inline (0.1.6)
  • Installing pexpect (4.8.0)
  • Installing pickleshare (0.7.5): Pending...
  • Installing prompt-toolkit (3.0.39): Pending...
  • Installing llvmlite (0.34.0): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  /tmp/tmpp9_iampk/.venv/bin/python /tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py
  LLVM version... Traceback (most recent call last):
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
  • Installing joblib (1.3.1)
  • Installing jsonschema-specifications (2023.6.1)
  • Installing jupyter-core (5.3.1)
  • Installing llvmlite (0.34.0): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  /tmp/tmpp9_iampk/.venv/bin/python /tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py
  LLVM version... Traceback (most recent call last):
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
  • Installing jedi (0.18.2)
  • Installing joblib (1.3.1)
  • Installing jsonschema-specifications (2023.6.1)
  • Installing jupyter-core (5.3.1)
  • Installing llvmlite (0.34.0): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  /tmp/tmpp9_iampk/.venv/bin/python /tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py
  LLVM version... Traceback (most recent call last):
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
    File "/usr/lib/python3.10/subprocess.py", line 420, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    File "/usr/lib/python3.10/subprocess.py", line 501, in run
      with Popen(*popenargs, **kwargs) as process:
    File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
      self._execute_child(args, executable, preexec_fn, close_fds,
    File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 191, in <module>
      main()
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 181, in main
      main_posix('linux', '.so')
    File "/tmp/tmpmpu1hn12/llvmlite-0.34.0/ffi/build.py", line 107, in main_posix
      raise RuntimeError("%s failed executing, please point LLVM_CONFIG "
  RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
  error: command '/tmp/tmpp9_iampk/.venv/bin/python' failed with exit code 1

  at ~/.local/share/pypoetry/venv/lib/python3.10/site-packages/poetry/installation/chef.py:147 in _prepare
      143│ 
      144│                 error = ChefBuildError("\n\n".join(message_parts))
      145│ 
      146│             if error is not None:
    → 147│                 raise error from None
      148│ 
      149│             return path
      150│ 
      151│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with llvmlite (0.34.0) not supporting PEP 517 builds. You can verify this by running 'pip wheel --use-pep517 "llvmlite (==0.34.0)"'.

  • Installing matplotlib-inline (0.1.6)
  • Installing pexpect (4.8.0)
  • Installing pickleshare (0.7.5)
  • Installing prompt-toolkit (3.0.39)
  • Installing pygments (2.15.1)
  • Installing python-dateutil (2.8.2)
  • Installing pytz (2023.3)
  • Installing pyzmq (25.1.0)
  • Installing ruamel-yaml-clib (0.2.7)
  • Installing scipy (1.9.3)
  • Updating setuptools (67.8.0 -> 68.0.0)
  • Installing stack-data (0.6.2)
  • Installing threadpoolctl (3.1.0)
  • Installing tornado (6.3.2)
  • Installing tzdata (2023.3)
benlansdell commented 1 year ago

Hi @imcatta, thanks for bringing this to my attention. I will look into what's needed for poetry compatibility. I appreciate the feedback.