이전 포스팅과 더불어 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

+ Recent posts