이전 포스팅과 더불어 Window10 환경임을 알려드립니다.
Anaconda Prompt에서는 tensorflow가 import 되지만 Jupyter에서 No module named 'tensorflow' 에러가 뜨는것을 해결하고자 한다.
Jupyter에서 tensorflow를 인식하지 못하고 No module named 'tensorflow'를 내뿜는 이 문제는 Jupyter과 tensorflow가 Python을 실행하기 위한 경로가 서로 다르기 때문이다. Python이 실행되고 있는 경로는 sys 라이브러리의 executable 변수를 확인하면 알 수 있다.
내 컴퓨터를 기준으로 Jupyter에서 Python으로 접근하는 경로는 C:\ProgramData\Anaconda3\python.exe 이다.
Anaconda Prompt에서 확인한 가상개발환경에서 Python으로 접근하는 경로는 C:\ProgramData\Anaconda3\envs\tensorflow\python.exe 이다.
(base) C:\Users\bbangko>activate tensorflow (tensorflow) C:\Users\bbangko>python Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print(sys.executable) C:\ProgramData\Anaconda3\envs\tensorflow\python.exe >>> |
Jupyter는 tensorflow 모듈에 접근하지 못하는 경로를 가리키고 있는 것을 확인 할 수 있다. 이 문제를 내가 이해한 것으로 그려보면 왼쪽의 그림과 같다. Jupyter가 Tensorflow 안에 있는 Python을 가리킬 수 있도록 해야한다. 그 방법은 Jupyter의 커널을 추가하는 것이다. virtualenv 커널 이라고 한다.
Jupyter의 커널을 추가하기 위해 Jupyter의 경로를 jupyter --path 명령어로 확인해보자.
(tensorflow) C:\Users\bbangko>jupyter --path config: C:\Users\bbangko\.jupyter c:\programdata\anaconda3\envs\tensorflow\etc\jupyter C:\ProgramData\jupyter data: C:\Users\bbangko\AppData\Roaming\jupyter c:\programdata\anaconda3\envs\tensorflow\share\jupyter C:\ProgramData\jupyter runtime: C:\Users\bbangko\AppData\Roaming\jupyter\runtime |
Jupyter의 데이터는 C:\Users\bbangko\AppData\Roaming\jupyter 여기에 있는것을 알 수 있다. 커널을 추가할 폴더를 만들도록 하자. (폴더 만들기 mkdir)
(tensorflow) C:\Users\bbangko>mkdir C:\Users\bbangko\AppData\Roaming\jupyter\kernels\tensorflow |
jupyter의 kernels 폴더에 kernels.json파일을 만들어준다. 메모장이나 notepad++ 사용
kernels.json
{ "argv": [ "/ProgramData/Anaconda3/envs/tensorflow/python", "-m", "ipykernel", "-f", "{connection_file}"], "display_name": "tensorflow", "language": "python" } |
argv 경로는 컴퓨터마다 다를 수 있으니 본인들 컴퓨터에서의 python 경로를 확인하자.
(tensorflow) C:\Users\bbangko>where python C:\ProgramData\Anaconda3\envs\tensorflow\python.exe C:\ProgramData\Anaconda3\python.exe |
이렇게 하고 Jupyter을 켜보면 New항목에 tensorflow라는 새로운 커널이 생긴 것이다. New -> Python 3로 하면 기존의 Python경로를 사용하는 파일이 생성됨
tensorflow를 import해서 오류없이 출력되면 성공!
'잡 기술 > Tensorflow' 카테고리의 다른 글
[Tensorflow] Window에서 Tensorflow를 설치해보자 (0) | 2018.08.04 |
---|