[anaconda] Jupyter Notebook에 Conda 환경이 표시되지 않음

Anaconda (Python 2.7 포함)를 설치하고라는 환경에 Tensorflow를 설치했습니다 tensorflow. 해당 환경에서 Tensorflow를 성공적으로 가져올 수 있습니다.

문제는 Jupyter Notebook이 방금 만든 새로운 환경을 인식하지 못한다는 것입니다. 아니, 난이 GUI 탐색기에서 또는 명령 행에서 Jupyter 노트북을 시작 문제가 tensorflow ENV,이라는 메뉴에 하나의 커널입니다 Python [Root], 그리고 Tensorflow는 가져올 수 없습니다. 물론 그 옵션을 여러 번 클릭하고 파일을 저장하고 다시 열었지만 도움이되지 않았습니다.

이상하게도 CondaJupyter의 첫 페이지 에서 탭을 열면 두 가지 환경을 볼 수 있습니다 . 그러나 Files탭을 열고 new노트북을 사용 하려고 할 때 여전히 커널이 하나만 생깁니다.

이 질문을 보았습니다 :
Jupyter Notebook과 Conda 환경 연결
그러나 ~/Library/Jupyter/kernels내 컴퓨터 에는 디렉토리가 없습니다 ! 이 Jupyter 디렉토리에는라는 하위 디렉토리가 하나만 있습니다 runtime.

정말 혼란 스러워요. Conda 환경은 자동으로 커널이되어야합니까? ( https://ipython.readthedocs.io/en/stable/install/kernel_install.html 에 따라 커널을 수동으로 설정했지만 ipykernel찾을 수 없다는 메시지가 표시되었습니다.)



답변

conda가 자동으로 환경을 jupyter 커널로 설정하는 것을 멈추었으므로 다른 답변이 더 이상 작동하지 않는다고 생각합니다. 다음과 같은 방법으로 각 환경에 대한 커널을 수동으로 추가해야합니다.

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

여기에 설명 된대로 : http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments
또한 이 문제를 참조하십시오 .

부록 : nb_conda_kernels패키지 를 설치하여 conda install nb_conda_kernels모든 환경을 자동으로 추가 할 수 있어야합니다 ( https://github.com/Anaconda-Platform/nb_conda_kernels 참조).


답변

환경이 표시되지 않으면 nb_conda_kernelsJupyter가 설치된 환경에 설치 되지 않았을 수 있습니다 . Anaconda의 문서에 따르면

nb_conda_kernelsJupyter Notebook 또는 JupyterLab을 실행하는 환경에 설치해야합니다. 이것은 기본 콘다 환경 일 수도 있지만 반드시 그럴 필요는 없습니다. 예를 들어, notebook_env 환경에 노트북 패키지가 포함되어 있으면 다음을 실행합니다.

conda install -n notebook_env nb_conda_kernels

노트북에서 액세스하려는 다른 환경에는 적절한 커널 패키지가 설치되어 있어야합니다. 예를 들어, 파이썬 환경에 액세스하려면 ipykernel 패키지가 있어야합니다. 예 :

conda install -n python_env ipykernel

R 환경을 활용하려면 r-irkernel 패키지가 있어야합니다. 예 :

conda install -n r_env r-irkernel

다른 언어의 경우 해당 커널 을 설치해야합니다.

원래 이것을 게시 할 당시 nb_condaPython 3.6 환경을 아직 지원하지 않았을 가능성이 있습니다 .

다른 솔루션으로 Jupyter가 다른 콘다 환경을 인식하지 못하면 항상 jupyter특정 환경 내에서 설치하고 실행할 수 있습니다. Jupyter 내에서 다른 환경을 보거나 전환하지 못할 수 있습니다.

$ conda create -n py36_test -y python=3.6 jupyter
$ source activate py36_test
(py36_test) $ which jupyter
/home/schowell/anaconda3/envs/py36_test/bin/jupyter
(py36_test) $ jupyter notebook

이 노트북에서 Python 3.6.1을 실행하고 있습니다.
여기에 이미지 설명을 입력하십시오

여러 환경에서이 작업을 수행하는 경우 Jupyter를 모든 환경에 설치하여 추가 된 저장 공간은 시스템에 따라 바람직하지 않을 수 있습니다.


답변

성가신 것은 tensorflow환경에서 jupyter notebook 설치하지 않고jupyter 실행할 수 있다는 것 입니다. 그냥 뛰어

(tensorflow) $ conda install jupyter

그리고 tensorflow환경은 지금의 시작 Jupyter 노트북에서 볼 수 있어야합니다 conda같은으로 환경 Python [conda env:tensorflow].


답변

이 작업을 수행하려면 상위 3 가지 답변에 언급 된 모든 명령을 실행해야했습니다.

conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel


답변

conda install ipykernel새 환경에서 실행 하면이 환경에서 커널을 얻게됩니다. 각 환경에 서로 다른 버전이 설치되어 있고 jupyter 노트북을 다시 설치하지 않아도 작동합니다. 새로 추가 된 커널을 볼 수있는 환경에서 노트북을 시작할 수 있습니다.


답변

요약 (tldr)

‘python3’커널이 시작된 환경에서 항상 Python 설치를 실행하도록하려면 현재 환경과 상관없이 사용자 ‘python3’커널을 삭제하십시오.

jupyter kernelspec remove python3

풀 솔루션

다음과 같은 경우에 대안적이고 간단한 솔루션을 게시하려고합니다.

  • 콘다 환경을 만들었습니다
  • 이 환경에는 jupyter가 설치되어 있습니다 (ipykernel도 설치됨)
  • jupyter notebook‘새로 만들기’드롭 다운 메뉴에서 ‘python3’을 클릭하여 명령을 실행하고 새 노트북을 만들면 해당 노트북은 현재 환경이 아닌 기본 환경에서 Python을 실행합니다.
  • 모든 환경에서 ‘python3’으로 새 노트북을 시작하면 기본이 아닌 해당 환경에서 Python 버전이 실행됩니다.

나머지 솔루션의 환경에는 ‘test_env’라는 이름을 사용하겠습니다. 또한 ‘python3’은 커널 이름입니다.

현재 가장 인기있는 답변은 효과가 있지만 대안이 있습니다. 다음과 같이 말합니다.

python -m ipykernel install --user --name test_env --display-name "Python (test_env)"

시작 환경에 관계없이 test_env 환경을 사용할 수있는 옵션이 제공 jupyter notebook됩니다. 그러나 ‘python3’으로 노트북을 시작하면 여전히 기본 환경의 Python 설치가 사용됩니다.

일어날 수있는 일은 존재하는 사용자 python3 커널이 있다는 것입니다. 명령 jupyter kernelspec list을 실행하여 모든 환경을 나열하십시오. 예를 들어, 맥이 있다면 다음과 같이 반환됩니다 (사용자 이름은 Ted입니다).

python3       /Users/Ted/Library/Jupyter/kernels/python3

Jupyter가 여기서하는 일은 커널을 찾는 세 가지 경로를 검색하는 것입니다. 그것은에서 이동 사용자봉투 에, 시스템 . 각 운영 체제를 검색하는 경로에 대한 자세한 내용 은 이 문서 를 참조하십시오.

위의 두 커널은 모두 사용자 경로에 있으며 jupyter 노트북을 시작하는 환경에 관계없이 사용할 수 있습니다. 또한 환경 수준에 다른 ‘python3’커널이 있으면 액세스 할 수 없습니다.

필자는 노트북을 시작한 환경에서 ‘python3’커널을 선택하면 해당 환경에서 Python을 실행해야한다는 것이 더 합리적입니다.

OS의 Env 검색 경로를 확인하여 다른 ‘python3’환경이 있는지 확인할 수 있습니다 (위의 문서에 대한 링크 참조). 나를 위해 (내 Mac에서) 다음 명령을 실행했습니다.

 ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels

그리고 실제로 거기에 ‘python3’커널이 나열되어 있습니다.

이 GitHub 이슈 주석 (첫 번째 응답을 보음) 덕분에 다음 명령으로 사용자 ‘python3’환경을 제거 할 수 있습니다.

jupyter kernelspec remove python3

이제 jupyter kernelspec listtest_env가 여전히 활성화되어 있다고 가정하면 다음을 얻을 수 있습니다.

python3       /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3

이 경로는 test_env 디렉토리 내에 있습니다. 새로운 환경을 만들고 jupyter를 설치하고 활성화하고 커널을 나열하면 환경 경로에 다른 ‘python3’커널이 있습니다.

사용자 ‘python3’커널이 Env ‘python3’커널보다 우선합니다. 이를 제거함으로써 활성 환경 ‘python3’커널이 노출되어 매번 선택할 수 있습니다. 따라서 커널을 수동으로 만들 필요가 없습니다. 또한 단일 환경으로 자신을 격리하려는 소프트웨어 개발 측면에서 더 의미가 있습니다. 호스트 환경과 다른 커널을 실행하는 것은 자연스러운 것처럼 보이지 않습니다.

또한이 사용자 ‘python3’은 기본적으로 모든 사람에게 설치되지 않았으므로 모든 사람 이이 문제에 직면하지는 않습니다.


답변

    $ conda install nb_conda_kernels

(jupyter 노트북을 실행하는 conda 환경에서) 모든 conda 환경을 자동으로 사용할 수 있습니다. 다른 환경에 액세스하려면 해당 커널을 설치해야합니다. 여기 심판이 있습니다.