Programing

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

lottogame 2020. 3. 21. 10:08
반응형

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 참조).


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

(tensorflow) $ conda install jupyter

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


환경이 표시되지 않으면 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를 모든 환경에 설치하여 추가 된 저장 공간은 시스템에 따라 바람직하지 않을 수 있습니다.


이 작업을 수행하려면 상위 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-forge 채널 을 사용하는 경우 루트 환경 conda-forge에서도에서 업데이트 된 패키지를 사용하고 있는지 확인해야 Miniconda합니다.

Miniconda를 설치 하고 다음을 수행하십시오.

conda config --add channels conda-forge --force
conda update --all  -y
conda install nb_conda_kernels -y
conda env create -f custom_env.yml -q --force
jupyter notebook

다음 예제와 같이 파일 ipykernel에 설치하기 위해 나열된 경우 사용자 정의 환경이 Jupyter에서 사용 가능한 커널 로 표시됩니다 custom_env.yml.

name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel

다양한 사용자 정의 환경에서 작동한다는 것을 증명하기 위해 Windows의 화면 캡처는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


    $ conda install nb_conda_kernels

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


새로운 conda 환경을 myenv커널 또는 새 노트북으로 선택할 수없는 동일한 문제가 발생했습니다 . 그리고 jupter notebookenv 내에서 실행 하면 같은 결과를 얻었습니다.

내 솔루션 및 Jupyter 노트북이 conda-envs 및 커널을 인식하는 방법에 대해 배운 내용 :

conda와 myenv함께 jupyter 및 ipython 설치 :

conda install -n myenv ipython jupyter

그 후, 이전 환경과 함께 커널로 jupter notebook나열된 env 외부 에서 실행 하십시오 myenv.

Python [conda env:old]
Python [conda env:myenv]

환경을 활성화 한 후 노트북 실행 :

source activate myenv
jupyter notebook

다른 모든 환경 커널을 숨기고 언어 커널 만 표시합니다.

python 2
python 3
R

이것은 매우 실망 스러웠습니다. 제 문제는 새로 건설 된 conda python36 환경 내에서 seaborn이 해당 환경 내에 설치되어 있어도 "seaborn"로드를 거부했습니다. 동일한 환경에서 numpy 및 pandas와 같이 다른 파일을 많이 가져올 수있는 것처럼 보였지만 바다에 닿지 않았습니다. 여기 및 다른 스레드에서 제안 된 많은 수정 사항을 성공하지 않고 시도했습니다. Jupyter가 해당 환경에서 커널 파이썬을 실행하지 않고 시스템 파이썬을 커널로 실행한다는 것을 알기 전까지는. 괜찮은 모양의 커널과 kernel.json이 이미 환경에 존재하더라도. https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments : ipython 설명서의이 부분을 읽은 후에 만 ​​가능했습니다. 다음 명령을 사용하십시오.

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

나는 모든 것을 잘 처리 할 수있었습니다. (실제로 –user 변수를 사용하지 않았습니다).

내가 아직 이해하지 못한 것은 기본 파이썬을 "Python (other-env)"로 설정하는 방법입니다. 현재 홈 화면에서 열린 기존 .ipynb 파일은 시스템 파이썬을 사용합니다. 환경 파이썬을 선택하려면 커널 메뉴“커널 변경”을 사용해야합니다.


반면 coolscitist의 대답은 @ 나를 위해 일한, 또한 전체 jupyter 패키지 + deps과 커널 환경을 복잡하게하지 않는 방법이있다. ipython 문서에 설명되어 있으며 기본이 아닌 환경에서 노트북 서버를 실행하는 경우에만 필요합니다.

conda activate name_of_your_kernel_env
conda install ipykernel
python -m ipykernel install --prefix=/home/your_username/.conda/envs/name_of_your_jupyter_server_env --name 'name_of_your_kernel_env'

당신은 그것을 사용하여 작동하는지 확인할 수 있습니다

conda activate name_of_your_jupyter_server_env 
jupyter kernelspec list

nb_conda_kernels패키지는 사용하는 가장 좋은 방법입니다 jupyter함께 conda. 최소한의 종속성과 구성으로 다른 환경에서 실행되는 jupyter 노트북의 다른 콘다 환경을 사용할 수 있습니다. 문서 인용 :

설치

이 패키지는 conda만을 사용하여 관리되도록 설계되었습니다. Jupyter Notebook 또는 JupyterLab을 실행하는 환경에 설치해야합니다. 이것은 당신의 base콘다 환경 일지 모르지만 그럴 필요는 없습니다. 예를 들어 환경 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

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

그런 다음 jupyter 노트북 서버를 시작하기 만하면됩니다.

conda activate notebook_env  # only needed if you are not using the base environment for the server
# conda install jupyter # in case you have not installed it already
jupyter

여기에 이미지 설명을 입력하십시오


많은 답변과 @merv의 개선 노력에도 불구하고 여전히 좋은 답변을 찾기가 어렵습니다. 이 CW를 만들었으므로 맨 위로 투표하거나 개선하십시오!


이것은 Windows 10 및 최신 솔루션에서 저에게 효과적이었습니다.

1) 해당 conda 환경으로 이동하십시오 (your_env_name 활성화)

2) conda install -n your_env_name ipykernel

3) python -m ipykernel 설치 --user --name build_central --display-name "your_env_name"

(참고 : 3 단계에서 "your_env_name"주위에 따옴표를 포함하십시오)


Jupyter Notebook에서 선택할 수있는 커널 목록에 다른 conda 환경을 추가 하려면 iPython 설명서지침을 따르십시오 . 요약하면, 설치 후 ipykernel터미널에서 각 conda 환경을 하나씩 활성화 하고 추가하려는 환경 (커널) python -m ipykernel install --user --name myenv --display-name "Python (myenv)"위치 명령을 실행 myenv해야합니다.


필자의 경우 Windows 10 및 conda 4.6.11을 사용하여 명령을 실행하십시오.

conda install nb_conda

conda install -c conda-forge nb_conda_kernels

을 사용하여 동일한 명령 줄에서 Jupyter를 연 후에 환경을 활성화하면서 터미널에서 작업을 수행하지 않았습니다 conda jupyter notebook.

해결책은 환경의 내 환경으로 이동하여 Anaconda Navigator에서 Jupyter를 여는 것입니다. Anaconda Navigator를 열고 환경의 환경을 선택하고 선택한 환경에서 "재생"버튼을 누른 다음 '주피터 노트북으로 열기'를 선택하십시오.

선택한 환경에서 Jupyter를 실행하기위한 Anaconda Navigator의 환경

참고 URL : https://stackoverflow.com/questions/39604271/conda-environments-not-showing-up-in-jupyter-notebook

반응형