Onepredict / onebone

An Open Source Signal Processing Library for Sensor Signals about vibration, current, etc.
MIT License
18 stars 3 forks source link

hoxfix: pywt 패키지 의존성 문제 #91

Closed Kangwhi-Kim closed 2 years ago

Kangwhi-Kim commented 2 years ago

@kyunghwan-onepredict 경환님, $ poetry install(1)도중 PyWavelets 의존성관련하여 오류가 발생하네요. 그래서 pyproject.toml에서 PyWavelets 패키지 지우고 $ poetry add PyWavelets(2)로 최신버전으로 깔면 파이썬 버전 의존성때문에 설치가 안됩니다. 수정이 필요해보입니다.

제 생각은 Python version을 3.7~3.11로 변경해야할 것 같네요.

(1)

❯ poetry install
Installing dependencies from lock file
Warning: The lock file is not up to date with the latest changes in pyproject.toml. You may be getting outdated dependencies. Run update to update them.

  SolverProblemError

  Because onebone depends on PyWavelets (1.1.1) which doesn't match any versions, version solving failed.

  at ~/.local/share/pypoetry/venv/lib/python3.9/site-packages/poetry/puzzle/solver.py:241 in _solve
      237│             packages = result.packages
      238│         except OverrideNeeded as e:
      239│             return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
      240│         except SolveFailure as e:
    → 241│             raise SolverProblemError(e)
      242│ 
      243│         results = dict(
      244│             depth_first_search(
      245│                 PackageNode(self._package, packages), aggregate_package_nodes

(2)

 1 ❯ poetry add PyWavelets
Using version ^1.3.0 for PyWavelets

Updating dependencies
Resolving dependencies... (0.2s)

  SolverProblemError

  The current project's Python requirement (>=3.6.5,<3.11) is not compatible with some of the required packages Python requirement:
    - pywavelets requires Python >=3.7, so it will not be satisfied for Python >=3.6.5,<3.7

  Because pywavelets (1.3.0) requires Python >=3.7
   and no versions of pywavelets match >1.3.0,<2.0.0, pywavelets is forbidden.
  So, because onebone depends on PyWavelets (^1.3.0), version solving failed.

  at ~/.local/share/pypoetry/venv/lib/python3.9/site-packages/poetry/puzzle/solver.py:241 in _solve
      237│             packages = result.packages
      238│         except OverrideNeeded as e:
      239│             return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
      240│         except SolveFailure as e:
    → 241│             raise SolverProblemError(e)
      242│ 
      243│         results = dict(
      244│             depth_first_search(
      245│                 PackageNode(self._package, packages), aggregate_package_nodes

  • Check your dependencies Python requirement: The Python requirement can be specified via the `python` or `markers` properties

    For pywavelets, a possible solution would be to set the `python` property to ">=3.7,<3.11"

    https://python-poetry.org/docs/dependency-specification/#python-restricted-dependencies,
    https://python-poetry.org/docs/dependency-specification/#using-environment-markers
Kangwhi-Kim commented 2 years ago

poetry lock --no-update로 해결가능