일단 글을 읽기 전에, 이 문제는 정말 여러 가지 원인일 수 있다. 한 마디로 요약하자면 가장 가능성이 높은 요인은 CUDA랑 Cudnn 라이브러리를 제대로 못 불러온 건데, 이걸 못 불러오는 원인이 천차만별이다. 심지어 아예 안깔렸을수도 있고. 내 경우에는 다른 텍스트 에디터(주피터 노트북 등등)에서 import tensorflow로 구동을 확인했고, 오직 pycharm 18.2 버젼에서만 저 오류가 떴었다. 심지어 내장된 파이썬 콘솔에서도 오류 없이 정상 작동했었다. ㅡㅡ;

 

 

https://pythonkim.tistory.com/137

 

윈도우10 + 텐서플로 GPU 버전 설치

얼마만인지 모르겠다. 블로그에 올린 많은 글들 중에 나름 봐줬으면 하는 글들이 꽤 있는데 통계를 보면 우분투에 텐서플로 GPU 버전을 설치하는 글이 가장 인기가 많다. 왜 그런지는 모르겠다. 아직 그 부분이 해..

pythonkim.tistory.com

 

 일단 이 블로그를 참조하면 좋겠다. 정말 잘 쓰셨고 나도 이 블로그를 참조해서 구동했다.

CUDA,cuDnn을 깔고 환경 변수까지 제대로 설정하고, cmd든 vscode든 다른 에디터로 일단 구동을 확인하면 좋겠다.

밑에서 설명할 해결법은 일단 정상적으로 타 환경에서는 작동한다는 것을 전제로 하기에, 이 단계에서 막히면 여기서는 아마 답을 찾기 힘들 것이니 이 블로그를 끄고 열심히 구글에서 검색하는 게 빠를 것이다.

 

 

 그리고 이제 본인이 파이참을 쓴다면 파이참의 버젼을 확인해보자. 19.1 이하의 버젼이라면 새로 업데이트 해 주자.

19.7월 기준으로 19.2 버젼이 나와있다.

18.x ->19.x는 바로 업데이트가 안 되고 19.x 인스톨러를 실행해서 구버젼을 지우고 새로 설치하게 된다. 물론 내부 설정은 그대로 연동할 수 있다. 구버젼 삭제 때 slient uninstall에 체크하고, 새 버젼 설치 때 기존 설정 폴더(아마 자동으로 선택되어 있을 것)을 선택하면 그 설정 그대로 설치된다.

 

 

 설치가 끝나면 프로젝트를 열고, 설정값을 불러오도록 좀 기다린 후 문제가 됐던 파일을 다시 실행시켜보니 잘 됐다.

그럼 문제해결인데...

 

 

 왜 이런 문제가 생겼냐, 그건 구 버젼 파이참에서 버그가 있었기 때문이다.

conda 가상환경을 사용할 때, 시스템 환경변수 중 PATH의 값이 정상적으로 불러와지지 않는 문제가 있었다.

tensorflow-gpu는 환경변수를 통해 cuda 같은 관련 라이브러리의 위치를 불러오니, 당연히 관련 dll이 정상적으로 import 될 리가 없다.

 

 

참고:

https://youtrack.jetbrains.com/issue/PY-27234

 

PyCharm incorrectly set PATH after conda venv activation : PY-27234

To reproduce: *create conda environment with Python 3.5 *install cvxopt *try to open Python console and run import cvxopt *result: `ImportError: DLL load failed: The specified module could not be…

youtrack.jetbrains.com

 19.1 까지도 안된다는 댓글이 몇 보이는데, 19.2 버젼에서는 해결됐다고 하고 나 역시 19.2 버젼으로 해결했다.

 

 버젼업을 하지 않고 해결하는 법은 자세히는 설명하지 않겠지만, 시스템 환경변수에서 PATH의 값을 긁어와서 파이참의 프로젝트 실행환경 설정에서 환경 변수 값에 방금 긁은 값을 복붙해서 넣으면 된다.

 

 

 교훈:

뭔가 안될땐 실행 환경도 바꿔보자. ide 자체 버그일수도 있다.

 

 

 

+ Recent posts