2017-11-14 5 views
0

내 Jupyter 노트북에 scikit-learn을 가져 오는 데 문제가 있습니다. 왜 작동하지 않는지를 놓치고 있습니다. 다른 패키지를 사용하기 전에이 문제가 발생했다는 것을 상기하지 않습니다. 나는이 특정 모듈과 비슷한 문제를 가진 사람들과 여러 스레드를 보았지만 제안 된 수표 중 어느 것도 내 문제를 해결하지 못했고 나에게 무엇이 잘못되었을 수 있는지 밝혀주지 못했습니다. 나는 가능한 한 많은 정보를 추가하려고 노력했다. 왜 이것이 작동을 거절 하는지를 알아 내려고 시도했다.오류 : Jupyter Notebook (sklearn)에서 모듈을 찾을 수 없습니다.

source activate python3 
conda install scikit-learn 
Fetching package metadata ............. 
Solving package specifications: . 

# All requested packages already installed. 
# packages in environment at /Users/overaa/anaconda/envs/python3: 
# 
scikit-learn    0.19.1   py36hffbff8c_0 

을 지금은 명령 줄에서 직접 파이썬 세션을 시작하면 의도 한대로, import sklearn 일을하고 모듈이 제대로 가져온 다음과 같이

내 패키지를 관리하는 아나콘다를 사용

scikit-learn는 설치 .

ModuleNotFoundError: No module named 'sklearn'

에 Jupyter 결과에서 같은 일을 나는 여러 가지를 확인했다. 첫째, 나의 jupyter와 jupyter-notebook이 올바른 환경을 가리키고 있는지 확인하십시오.

which jupyter 
/Users/overaa/anaconda/envs/python3/bin/jupyter 
which jupyter-notebook 
/Users/overaa/anaconda/envs/python3/bin/jupyter-notebook 

그러면 노트북이 체크 아웃합니다. (내 노트북을 출시 곳과 같은 환경에서) 명령 줄 파이썬 세션에서 다음

:

>>> import sklearn 
>>> sklearn.__file__ 
'/Users/overaa/anaconda/envs/python3/lib/python3.6/site_packages/sklearn/__init__.py' 

그래서 scikit-learn는 올바른 환경에 설치됩니다.

이제는 동일한 버전을 실행하고 있다고 비교합니다. 명령 줄에서

: Jupyter 노트북에서

>>> print(sys.version) 
3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:04:09) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] 

: 패키지 경로를 비교

print(sys.version) 
3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:04:09 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] 

.

>>> print(sys.path) 
['', '/Users/overaa/anaconda/envs/python3/lib/python36.zip', 
'/Users/overaa/anaconda/envs/python3/lib/python3.6', 
'/Users/overaa/anaconda/envs/python3/lib/python3.6/lib-dynload', 
'/Users/overaa/anaconda/envs/python3/lib/python3.6/site-packages', 
'/Users/overaa/anaconda/envs/python3/lib/python3.6/site_packages/setuptools-27.2.0-py3.6.egg'] 

Jupyter : 내 sys.path

명령 행에 대한 유사

import site 
print(site.getsitepackages()) 
['/Users/overaa/anaconda/envs/python3/lib/python3.6/site-packages'] 

: Jupyter 노트북에서

import site 
print(site.getsitepackages()) 
['/Users/overaa/anaconda/envs/python3/lib/python3.6/site-packages'] 

: 명령 줄에서

print(sys.path) 
['', '/Users/overaa/anaconda/envs/python36/lib/python36.zip', 
'/Users/overaa/anaconda/envs/python36/lib/python3.6', 
'/Users/overaa/anaconda/envs/python36/lib/python3.6/lib-dynload', 
'/Users/overaa/anaconda/envs/python36/lib/python3.6/site-packages', 
'/Users/overaa/anaconda/envs/python36/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg', 
'/Users/overaa/anaconda/envs/python36/lib/python3.6/site-packages/IPython/extensions', 
'/Users/overaa/.ipython'] 

그래서 모든 것이 setuptools 명령 줄 버전과 Jupyter 버전 사이에 차이가 들어있는 디렉토리 것을 제외하고 동일합니다. 또한 scikit-learnsite-packages 서브 디렉토리가 아닌 site_packages 서브 디렉토리에 설치되는 것으로 나타났습니다. 서브 디렉토리는 Jupyter가 모듈을 찾는 것처럼 보입니다. 그래서 두 가지를 시도했습니다. 먼저 내 노트북을 실행하기 전에 내 .bash_profile에있는 JUPYTER_PATH에 경로를 추가하십시오.

export JUPYTER_PATH="/Users/overaa/anaconda/envs/python36/lib/python3.6/site-packages:$JUPYTER_PATH" 

내가 또한 이전에 아무 소용 scikit-learn

sys.path.append("/Users/overaa/anaconda/envs/python3/lib/python3.6/site_packages") 

모두를 가져 오려고에 직접 jupyter 노트북에 내 sys.path에 추가하려고 sklearn는 여전히 내 노트북에 가져올 거부합니다.

scikit-learn이 내 Jupyter 노트북으로 가져 오지 못하는 이유에 대한 아이디어는 높이 평가 될 것입니다. 내가 확인할 수있는 것들이 더 있습니까? 어떻게 작동시킬 수 있습니까?

내 환경을 활성화/비활성화하려고 시도했지만 커널 등을 다시 시작하는 데 성공하지 못했습니다.

편집 : - scikit-learn 그들에 의존하지만, 당신을 위해 그 (것)들을 설치하지 않습니다 나는 아무 문제가 당신이 numpy 설치 scipy 모두가 있는지 확인 numpy 또는 scipy

+0

numpy 같은 다른 라이브러리는 어떻게 가져올 수 있습니까? – kazemakase

+0

예, 그건 문제가되지 않습니다. –

답변

0

~/Library/Jupyter/kernels 폴더를 제거하고 노트북을 다시 시작하면 트릭을 만들 수 있다고 밝혀졌습니다. jupyter kernelspec list의 커널이 내가 예상했던 것처럼 보입니다. 그럼에도 불구하고 현재 작동 중입니다. 그것은 sklearn 독점 문제가 아닌 것으로 보입니다. 나는 기본적으로 무엇을 따라 갔다 this person wrote.

0

같은 다른 패키지를 가져 오기 없다.

또한 설치 한 후 노트북 서버를 다시 시작하십시오.

+0

예,'numpy'와'scipy'가 둘 다 설치되어 있으며 그 중 하나에서 패키지를 가져 오는 데 문제가 없었습니다. 불행히도 노트북 서버를 다시 시작해도 문제가 해결되지 않았습니다. –