티스토리 뷰

반응형

python 3.10 환경에 분석을 위한 다양한 라이브러리를 구성하다보니 호환성 문제로 아래와 같은 문제가 밸생했다.

 

1. 오류내용

크게보면 여러 라이브러리에서 아래와 같은 문제가 발생했다. 사실 처음에는 다양한 라이브러리를 한번에 설치해서 원인을 찾기 힘들었는데 하나식 역추적하며 결국 해결방법을 찾았다.

 

1.1 numpy 버전 문제 오류

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.2 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

 

1.2  jax, scipy 의 버전충돌 문제

TypeError: where() got some positional-only arguments passed as keyword arguments: 'condition, x, y'

 

2. 해결방법

여기서 핵심은 numpy 1.x 버전을 가장 먼저 설치하고 (다른 라이브러리의 의존성상 1.26.4 이 범위에 해당되어 문제안되는편)

그 이후 scipy 1.12.0, jax 버전을 0.4.20 으로 고정하는것이었다. 다른 버전 조합도 해봤는데 이버전만 성공했다.

 

해결방법은 lightweight_mmm 리파지토리 이슈에서 발견했고 다행히 나도 TypeError 오류가 나던문제를 해결했다.

https://github.com/google/lightweight_mmm/issues/321#issuecomment-2195724411

pip install --upgrade pip

pip install numpy==1.26.4 \
  pip install numpy==1.26.4 pyarrow fsspec \
    ipywidgets jupyterlab \
    duckdb jupysql pandas matplotlib duckdb-engine \
    papermill nbformat pyyaml \
    pandas matplotlib seaborn plotly \
    duckdb jupysql duckdb-engine \
    pyhive thrift thrift-sasl pure-sasl \
    pyspark \
    trino
    
pip install scipy==1.12.0 jax[cpu]==0.4.20 numpyro lightweight_mmm

 

너무나도 많이 삽질을 했던거 같다. 특히 jax 의 경우 gpu 버전과 cpu 버전 여러가지 버전이 존재하고 해서 이런 영향을 더 많이 삽질했던거 같다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함