인프런 커뮤니티 질문&답변

김도형님의 프로필 이미지
김도형

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

사이킷런 업그레이드 수행 및 XGBoost와 LightGBM 설치

lightgbm 오류

작성

·

344

·

수정됨

0

lightbgm을 강의와 같이 설치한 후 주피터 노트북으로 버전 확인을 해보았더니 다음과 같은 오류가 뜨네요.. 해결방법이 있을까요?스크린샷 2024-01-19 024417.png

더해서 xgboost의 버전이 1.7.3이 문제가 되는건 아닌지 궁금합니다.

답변 2

0

김도형님의 프로필 이미지
김도형
질문자

TypeError                                 Traceback (most recent call last)
Cell In[1], line 1
----> 1 import lightgbm
      2 print(lightgbm.__version__)

File ~\anaconda3\lib\site-packages\lightgbm\__init__.py:8
      2 """LightGBM, Light Gradient Boosting Machine.
      3 
      4 Contributors: https://github.com/microsoft/LightGBM/graphs/contributors.
      5 """
      6 from pathlib import Path
----> 8 from .basic import Booster, Dataset, Sequence, register_logger
      9 from .callback import early_stopping, log_evaluation, record_evaluation, reset_parameter
     10 from .engine import CVBooster, cv, train

File ~\anaconda3\lib\site-packages\lightgbm\basic.py:21
     18 import numpy as np
     19 import scipy.sparse
---> 21 from .compat import PANDAS_INSTALLED, concat, dt_DataTable, pd_CategoricalDtype, pd_DataFrame, pd_Series
     22 from .libpath import find_lib_path
     24 if TYPE_CHECKING:

File ~\anaconda3\lib\site-packages\lightgbm\compat.py:147
    145     from dask.dataframe import DataFrame as dask_DataFrame
    146     from dask.dataframe import Series as dask_Series
--> 147     from dask.distributed import Client, Future, default_client, wait
    148     DASK_INSTALLED = True
    149 except ImportError:

File ~\anaconda3\lib\site-packages\dask\distributed.py:13
      5 _import_error_message = (
      6     "dask.distributed is not installed.\n\n"
      7     "Please either conda or pip install distributed:\n\n"
      8     "  conda install dask distributed             # either conda install\n"
      9     '  python -m pip install "dask[distributed]" --upgrade    # or pip install'
     10 )
     12 try:
---> 13     from distributed import *
     14 except ImportError as e:
     15     if e.msg == "No module named 'distributed'":

File ~\anaconda3\lib\site-packages\distributed\__init__.py:23
     20 from dask.config import config  # type: ignore
     22 from distributed._version import get_versions
---> 23 from distributed.actor import Actor, ActorFuture, BaseActorFuture
     24 from distributed.client import (
     25     Client,
     26     CompatibleExecutor,
   (...)
     35     wait,
     36 )
     37 from distributed.core import Status, connect, rpc

File ~\anaconda3\lib\site-packages\distributed\actor.py:13
      9 from typing import Generic, Literal, NoReturn, TypeVar
     11 from tornado.ioloop import IOLoop
---> 13 from distributed.client import Future
     14 from distributed.protocol import to_serialize
     15 from distributed.utils import LateLoopEvent, iscoroutinefunction, sync, thread_state

File ~\anaconda3\lib\site-packages\distributed\client.py:117
     94 from distributed.utils import (
     95     CancelledError,
     96     LoopRunner,
   (...)
    107     thread_state,
    108 )
    109 from distributed.utils_comm import (
    110     WrappedKey,
    111     gather_from_workers,
   (...)
    115     unpack_remotedata,
    116 )
--> 117 from distributed.worker import get_client, get_worker, secede
    119 logger = logging.getLogger(__name__)
    121 _global_clients: weakref.WeakValueDictionary[
    122     int, Client
    123 ] = weakref.WeakValueDictionary()

File ~\anaconda3\lib\site-packages\distributed\worker.py:120
    118 from distributed.utils_perf import disable_gc_diagnosis, enable_gc_diagnosis
    119 from distributed.versions import get_versions
--> 120 from distributed.worker_memory import (
    121     DeprecatedMemoryManagerAttribute,
    122     DeprecatedMemoryMonitor,
    123     WorkerDataParameter,
    124     WorkerMemoryManager,
    125 )
    126 from distributed.worker_state_machine import (
    127     AcquireReplicasEvent,
    128     BaseWorker,
   (...)
    152     WorkerState,
    153 )
    155 if TYPE_CHECKING:
    156     # FIXME import from typing (needs Python >=3.10)

File ~\anaconda3\lib\site-packages\distributed\worker_memory.py:56
     53     from distributed.nanny import Nanny
     54     from distributed.worker import Worker
---> 56 WorkerDataParameter: TypeAlias = Union[
     57     # pre-initialized
     58     MutableMapping[Key, object],
     59     # constructor
     60     Callable[[], MutableMapping[Key, object]],
     61     # constructor, passed worker.local_directory
     62     Callable[[str], MutableMapping[Key, object]],
     63     # (constructor, kwargs to constructor)
     64     tuple[Callable[..., MutableMapping[Key, object]], dict[str, Any]],
     65     # initialize internally
     66     None,
     67 ]
     69 worker_logger = logging.getLogger("distributed.worker.memory")
     70 worker_logger.addFilter(RateLimiterFilter(r"Unmanaged memory use is high"))

File ~\anaconda3\lib\typing.py:243, in _tp_cache.<locals>.inner(*args, **kwds)
    241 except TypeError:
    242     pass  # All real errors (not unhashable args) are raised below.
--> 243 return func(*args, **kwds)

File ~\anaconda3\lib\typing.py:316, in _SpecialForm.__getitem__(self, parameters)
    314 @_tp_cache
    315 def __getitem__(self, parameters):
--> 316     return self._getitem(self, parameters)

File ~\anaconda3\lib\typing.py:421, in Union(self, parameters)
    419 msg = "Union[arg, ...]: each arg must be a type."
    420 parameters = tuple(_type_check(p, msg) for p in parameters)
--> 421 parameters = _remove_dups_flatten(parameters)
    422 if len(parameters) == 1:
    423     return parameters[0]

File ~\anaconda3\lib\typing.py:215, in _remove_dups_flatten(parameters)
    213         params.append(p)
    214 # Weed out strict duplicates, preserving the first of each occurrence.
--> 215 all_params = set(params)
    216 if len(all_params) < len(params):
    217     new_params = []

TypeError: unhashable type: 'list'

넵! 이렇게 에러가 떴네용

권 철민님의 프로필 이미지
권 철민
지식공유자

conda 환경이 새로운 환경이 아닌가요?

지금 Dask 가 설치되어 있는것 같습니다만, 오류가 Dask관련해서 발생하는 것 같습니다.

이미 가지고 계시는 가상환경에 lightgbm을 설치하신 건가요? 아님 강의대로 새로운 conda 환경에 lightgbm을 설치하신 건가요?

김도형님의 프로필 이미지
김도형
질문자

다른 가상환경을 만들긴 했는데 lightgbm을 설치한거는 기존에 있던 base 가상환경에서 설치했어요

권 철민님의 프로필 이미지
권 철민
지식공유자

기존에 있던 가상환경에 Dask가 깔려있는것 같습니다. 확인해 보실 수 있나요?

김도형님의 프로필 이미지
김도형
질문자

아 제가 그냥 다시 아나콘다를 지워버리고 해도 안되길래..new_base 가상환경을 다시 만들어서 처음부터 설치를 진행중입니다. 파이썬도 3.9 버전으로 맞추고 다른 것도 다 설치가 순조롭게 진행되는 와중에

(new_base) C:\Windows\System32>pip install lightbgm==3.3.2

ERROR: Could not find a version that satisfies the requirement lightbgm==3.3.2 (from versions: none)

ERROR: No matching distribution found for lightbgm==3.3.2

이처럼 lightbgm을 깔려고 하니 저런 에러가 뜨네요..ㅜㅜ

김도형님의 프로필 이미지
김도형
질문자

3.3.3 으로 하니깐 잘 깔렸습니다!!

하지만 이후에 new_base 가상환경 상에서 주피터 노트북을 깔고 실행하여 lightbgm을 다시 실행시켰더니

이러한 오류가 뜨는군요ㅠㅠㅠ

권 철민님의 프로필 이미지
권 철민
지식공유자

jupyter notebook은 new_base 가상환경에서 실행이 되지 않아서 lightgbm을 import하지 못한것 같습니다.

new_base 가상환경에서

pip install ipykernel

설치 후

python -m ipykernel install --user --name=new_base

수행 하신 다음에

기존 주피터 노트북 종료하시고, 윈도우즈의 메뉴에서 새롭게 Jupyter Notebook을 기동해 보십시요.

그런 다음에 browser로 접속해서, New를 선택하시고, 여기서 Python3 를 선택하지 마시고, new_base 가상환경을 선택해 주십시요.

이렇게 열린 노트북 커널에서 lightgbm을 import 해보십시요.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

해당 부분은 오류가 아니라 warning 이며 pyarrow의 upgrade를 권하는 것이기 때문에 실행에는 문제가 없습니다.

감사합니다.

김도형님의 프로필 이미지
김도형
질문자

import lightgbm

print(lightgabm.__version__)

를 했을 때도 실행이 안되네요..ㅠㅠ

TypeError: unhashable type: 'list'
권 철민님의 프로필 이미지
권 철민
지식공유자

print(lightabm 이 아니라 print(lightgbm 입니다.

김도형님의 프로필 이미지
김도형
질문자

아 오타가 났었네요!!

이런 식으로 에러가 뜹니다.

권 철민님의 프로필 이미지
권 철민
지식공유자

lightgbm 이 잘 설치가 안된것 같습니다.

에러를 스크린 캡처하지 마시고, 텍스트를 그대로 여기에 올려봐 주시겠습니까?

김도형님의 프로필 이미지
김도형

작성한 질문수

질문하기