Jupyter Notebook이 시작되지 않는다고 생각하면 Anaconda 환경이 손상되었습니다.

2019/4/12

pip로 새로 패키지를 넣으면 conda 환경이 망가진 것 같습니다.본 기사에서는 그 발단과 원인 규명·확인 방법, 해결책을 기록해 둡니다.

이 사고는 일어났을 때의 환경은 다음과 같습니다. OS는 윈도우 10.

conda version : 4.6.8 conda-build version : not installed python version : 3.7.2.final.0 OS : Windows 10 64 bit

일의 발단

어느 날 평소대로 Jupyter Notebook을 시작하자 창이 빠져 나와 순식간에 사라졌다.다시 시도해도 PC 재기동해도 일향으로 변하지 않는다…

직전에 넣은 pip로 새롭게 패키지에 넣고 있었으므로, 우선 전부 업데이트하면 좋을 것이라고 생각해, Anaconda prompt로부터
· conda 자체 업데이트 ( conda update -n base conda)
· 설치된 모든 패키지 업데이트 (conda update --all)
시도해 보았다.

그러면 다음 표시가 ...

Solving environment: / WARNING conda.common.logic:get_sat_solver_cls(278): Could not run SAT solver through interface 'pycosat'. failed CondaDependencyError: Cannot run solver. No functioning SAT implementations available.

아무래도 「SAT solver」되는 것이 잘 움직이지 않는 모양.

공식 페이지의conda의 작동 방식에 대한 기사를 보면, conda는 SAT solver를 사용하여 "그 환경에 있는 모든 패키지의 메타데이터를 수집하고 그 종속성이 제대로 충족되었는지"를 검증하고 있는 것 같습니다.

환경내의 패키지를 파악할 수 없는 상태에 있다고 하는 것은 환경에 이변이 일어나 버리고 있다고 생각됩니다.

확인 방법

결론적으로 conda와 pip의 충돌이 원인이었습니다.원인에 대해서는 이하의 사이트를 매우 참고로 했습니다.

conda와 pip : 혼합하지 않는 위험

"아나콘다 아래 pip를 사용하면 예기치 않게 환경이 파괴되고 최악의 경우 아나콘다 자체를 다시 설치해야합니다."
"이미 구축된 자신의 conda 환경에서 pip와 conda의 충돌이 있는지 확인하고 싶다면,conda list실행합니다. "

자신의 환경conda list에서 확인해 보면 확실히 몇 가지 중복되는 것이 있습니다 (이미지에서 흰색 배경에서 강조 부분입니다).

conda와 pip로 설치된 패키지 중복맨 오른쪽에 "pypi"가 표시됩니다.pip install에 의한 것, 무인의conda install때문입니다.

이것이 pip에 의해 설치한 것과 충돌해, SAT solver를 실행할 수 없게 된 결과, conda 환경 자체가 움직일 수 없게 되어 버렸을지도 모릅니다.

Anaconda 재설치

Anaconda prompt가 작동하지 않기 때문에 Anaconda-Clean을 사용하여 제거할 수 없습니다.

제어판의 프로그램 제거에서 제거한 다음 다시 설치합니다.자세한 것은 이하에도 정리했습니다.


conda install과 pip install의 차이에 대해서도 조사했으므로, 참고로 해 주시면 다행입니다.