Môi trường Conda không hiển thị trong Jupyter Notebook


364

Tôi đã cài đặt Anaconda (với Python 2.7) và cài đặt Tensorflow trong một môi trường được gọi là tensorflow. Tôi có thể nhập hàng chục thành công trong môi trường đó.

Vấn đề là Jupyter Notebook không nhận ra môi trường mới mà tôi vừa tạo. Không thành vấn đề tôi bắt đầu Jupyter Máy tính xách tay từ GUI Navigator hoặc từ dòng lệnh trong các tensorflowenv, chỉ có một hạt nhân trong menu gọi Python [Root], và Tensorflow không thể được nhập khẩu. Tất nhiên, tôi đã nhấp vào tùy chọn đó nhiều lần, lưu tệp, mở lại, nhưng những thứ này không giúp được gì.

Thật kỳ lạ, tôi có thể thấy hai môi trường khi tôi mở Condatab trên trang đầu của Jupyter. Nhưng khi tôi mở Filestab và thử vào newmột cuốn sổ, tôi vẫn chỉ có một nhân.

Tôi đã xem xét câu hỏi này: Liên kết môi trường Conda với Jupyter Notebook Nhưng không có một thư mục như ~/Library/Jupyter/kernelstrên máy tính của tôi! Thư mục Jupyter này chỉ có một thư mục con được gọi runtime.

Tôi thực sự bối rối. Có phải môi trường Conda được cho là tự động trở thành hạt nhân? (Tôi đã theo dõi https://ipython.readthedocs.io/en/urdy/install/kernel_install.html để thiết lập hạt nhân theo cách thủ công, nhưng được thông báo ipykernellà không tìm thấy.)


43
Chạy conda install ipykerneltrong môi trường đó.
Thomas K

1
conda install ipykerneldường như cài đặt jupytertrong môi trường ... Tôi có thiếu thứ gì không?
Dror

1
Có lẽ ipykernel có jupyter là một phụ thuộc?
kevinkayaks

1
dường như không còn hoạt động nữa ... xem câu trả lời dưới đây từ Andreas
Casey L

@ThomasK chỉ hoạt động nếu nb_condađược sử dụng hoặc nếu kernel được thiết lập thủ công như được đề xuất trong câu hỏi. Nếu không nó sẽ thực sự làm rối tung mọi thứ khá nhiều. Việc thực thi jupytersẽ trỏ đến một thực thi bên trong môi trường, nhưng hệ thống jupyter-notebooksẽ được khởi động (nếu được cài đặt) và do đó không sử dụng môi trường với kernel mặc định.
thắt lưng

Câu trả lời:


542

Tôi không nghĩ các câu trả lời khác đang hoạt động nữa, vì conda ngừng tự động thiết lập môi trường như hạt nhân jupyter. Bạn cần thêm hạt nhân theo cách thủ công cho từng môi trường theo cách sau:

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

Như tài liệu ở đây: http://ipython.readthedocs.io/en/urdy/install/kernel_install.html#kernels-for-different-envirments Cũng xem vấn đề này .

Phụ lục: Bạn sẽ có thể cài đặt nb_conda_kernelsgói với conda install nb_conda_kernelsđể tự động thêm tất cả các môi trường, xem https://github.com/Anaconda-Pl platform / nb_conda_kernels


28
Có thể bằng cách nào đó cờ là giải pháp cập nhật nhất cho đến ngày hôm nay?
N. CHATURV3DI

1
Chỉ điều này làm việc cho tôi! cài đặt conda nb_conda - không giúp đỡ. Cảm ơn!
Deil

2
Việc cài đặt nb_conda_kernelslàm việc cho tôi như của tháng tư 2018 ( Python 3.6.4, conda 4.3.27, jupyter 4.4.0).
wflynny

3
Sửa chữa cho nhận xét trước đây của tôi: env mới không chỉ hiển thị lần đầu tiên. Sau khi bạn tắt và kích hoạt lại env, sau đó mở jupyter, sau đó nó hiển thị đúng.
R71

23
Nếu điều này không hiệu quả với bạn, hãy thử chạy conda install ipykernelcâu trả lời này giả sử rằng bạn đã cài đặt nó trên môi trường của bạn.
Ken Myers

150

Nếu môi trường của bạn không hiển thị, có thể bạn chưa nb_conda_kernelscài đặt trong môi trường nơi Jupyter được cài đặt. Tài liệu của Anaconda nói rằng

nb_conda_kernelsnên được cài đặt trong môi trường mà bạn chạy Jupyter Notebook hoặc JupyterLab. Đây có thể là môi trường conda cơ sở của bạn, nhưng nó không cần phải như vậy. Chẳng hạn, nếu môi trường notebook_env chứa gói notebook, thì bạn sẽ chạy

conda install -n notebook_env nb_conda_kernels

Bất kỳ môi trường nào khác bạn muốn truy cập trong sổ ghi chép của bạn phải có gói hạt nhân thích hợp được cài đặt. Chẳng hạn, để truy cập môi trường Python, nó phải có gói ipykernel; ví dụ

conda install -n python_env ipykernel

Để sử dụng môi trường R, nó phải có gói r-irkernel; ví dụ

conda install -n r_env r-irkernel

Đối với các ngôn ngữ khác, hạt nhân tương ứng của chúng phải được cài đặt.

Lưu ý rằng tại thời điểm ban đầu đăng bài này, có thể có nguyên nhân từ việc nb_condachưa hỗ trợ môi trường Python 3.6 .

Nếu các giải pháp khác không thể khiến Jupyter nhận ra các môi trường conda khác, bạn luôn có thể cài đặt và chạy jupytertừ trong một môi trường cụ thể. Bạn có thể không nhìn thấy hoặc chuyển sang các môi trường khác từ bên trong 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

Lưu ý rằng tôi đang chạy Python 3.6.1 trong sổ ghi chép này: nhập mô tả hình ảnh ở đây

Lưu ý rằng nếu bạn thực hiện việc này với nhiều môi trường, không gian lưu trữ được thêm từ cài đặt Jupyter vào mọi môi trường có thể không mong muốn (tùy thuộc vào hệ thống của bạn).


Xin lỗi để mở chủ đề này một lần nữa. Tuy nhiên tôi đã thử mọi thứ như được tư vấn ở đây và vẫn không thấy env tenorflow trong jupyter. Tôi đã cài đặt jupyter trong env tenorflow. Tôi đã cài đặt python 3.6.1 ở đó. Tôi đã thử cài đặt conda nb_conda nhưng nó cho biết xung đột với py3.6. Vì vậy, nó đã không được cài đặt phần còn lại mọi thứ khác mà tôi đã thử và dường như không hoạt động. Có lời khuyên nào không?
Baktaawar

đồng ý. Tôi kiểm tra lại. Vấn đề của tôi là jupyter của tôi khi được mở bằng kernel Python 3 không thể nhập bất kỳ mô-đun nào. Tôi không chắc tại sao vậy. Và nó cũng không hiển thị env khác nữa
Baktaawar

2
@Baktaawar, xem câu trả lời cập nhật của tôi trình bày cách sử dụng python 3.6 trong sổ ghi chép. Bạn có thể chạy môi trường python 3.6, bạn chỉ cần khởi động jupyter với môi trường đó hoạt động. Môi trường Conda có thể được coi là cài đặt python khép kín. Nếu bạn cài đặt Jupyter vào python hệ thống, bạn cũng chỉ thấy một tùy chọn kernel python. nb_condaMục đích của bạn chỉ là "[cung cấp] môi trường Conda và tiện ích mở rộng truy cập gói từ bên trong Jupyter" chứ không phải để bạn có thể chạy Jupyter từ bản cài đặt python đã chọn.
Steven C. Howell

1
@ StevenC. Cảm ơn vì đã giải quyết mối quan tâm của tôi. Tôi nghĩ bạn vẫn cần đề cập rằng ipykernelcần phải được cài đặt trong mỗi env mà bạn muốn sử dụng làm kernel.
merv

1
Hmm, tôi không chắc tại sao nó hoạt động mà không có nó. Bạn nói đúng, họ nói rõ rằng nó nên được cài đặt. Tôi đã thêm nó vào câu trả lời của tôi. Cảm ơn!
Steven C. Howell

112

Điều khó chịu là trong tensorflowmôi trường của bạn , bạn có thể chạy jupyter notebook mà không cần cài đặt jupytertrong môi trường đó . Chỉ cần chạy

(tensorflow) $ conda install jupyter

tensorflowmôi trường bây giờ sẽ hiển thị trong Notebook Jupyter bắt đầu trong bất kỳ condamôi trường nào của bạn như một cái gì đó giống như Python [conda env:tensorflow].


6
Tôi có cùng một vấn đề với Thomas K, và giải pháp được chia sẻ bởi Octavius ​​cũng giải quyết vấn đề của tôi. Tuy nhiên, có một nhược điểm, nếu bạn có phiên bản Anaconda Python 3, thì bạn sẽ chỉ có thể thấy môi trường hoạt động hiện tại của mình và nó sẽ có Jupyter của riêng nó. Nhưng nếu bạn cài đặt phiên bản Python 2 của Anaconda, nó có thể xử lý tất cả các môi trường.
rkmalaiya

6
bạn cũng có thể thực hiện "cài đặt nb_conda" trong phiên bản Python2 của Anaconda để quản lý các env của mình từ chính Jupyter.
rkmalaiya

7
@rkmalaiya là chính xác. Nếu Miniconda3 hoặc Anaconda3 đang chạy của bạn, hãy thực hiện conda install nb_condatrong một trong những môi trường conda có nguồn gốc của bạn (đã cài đặt máy tính xách tay jupyter). Sau đó, bạn có thể chuyển đổi hạt nhân / conda envs trong trình duyệt máy tính xách tay jupyter.
Harsha Manjunath

1
Có thể báo cáo phương pháp này hoạt động vào tháng 9 năm 2018 với Anaconda 5.2 Python 3.6
jdr5ca

13
Đây là một câu trả lời khủng khiếp vì nó khuyến khích người dùng cài đặt Jupyter trong mỗi env, điều này hoàn toàn không cần thiết. Lý do tại sao điều này hoạt động là ipykernel(đó là điều duy nhất thực sự cần thiết), là một sự phụ thuộc của jupyter.
Merv

72

Tôi đã phải chạy tất cả các lệnh được đề cập trong 3 câu trả lời hàng đầu để làm việc này:

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

9
Đây cũng là điều làm việc cho tôi, nhưng tôi không cầnconda install nb_conda
Ken Myers

3
Chưng cất tuyệt vời!
Bảo-Tin Hoàng

1
Tôi chỉ cần 3 lệnh đầu tiên để hiển thị kernel môi trường dưới dạng tùy chọn khi tôi chạy jupyter labbên trong môi trường cụ thể đó
Igor Fobia

3
Làm việc cho tôi quá. Chúa ơi, điều này thật khó chịu.
Trevor Bye

4
Bạn không cần nb_conda! ;)
Prayson W. Daniel

48

Chỉ cần chạy conda install ipykerneltrong môi trường mới của bạn, chỉ sau đó bạn sẽ nhận được kernel với env này. Điều này hoạt động ngay cả khi bạn có các phiên bản khác nhau được cài đặt trong mỗi envs và nó không cài đặt lại máy tính xách tay jupyter. Bạn có thể bắt đầu sổ ghi chép từ bất kỳ env nào bạn sẽ có thể thấy các hạt nhân mới được thêm vào.


10
Đây là câu trả lời tốt nhất kể từ tháng 1 năm 2018. Jupyter sẽ tự động khám phá kernel của bạn khi khởi động nếu bạn chỉ đơn giản là conda install ipykerneltrong môi trường conda của mình. Trường hợp xấu nhất, bạn có thể sử dụng python -m ipykernel install --user --name mykernelđể tạo kernel theo cách thủ công, nhưng bạn sẽ không muốn làm điều này nếu nó đã được tự động phát hiện hoặc nó sẽ hiển thị hai lần trong danh sách kernel.
colllin

2
điều này cũng sẽ cài đặt Sao Mộc và tất cả các phụ thuộc của nó. Nó hoạt động nhưng bằng cách nào đó nó không tối ưu
Quickbeam2k1

16

Tóm tắt (tldr)

Nếu bạn muốn hạt nhân 'python3' luôn chạy cài đặt Python từ môi trường nơi nó được khởi chạy, hãy xóa hạt nhân 'python3' của người dùng, nó được ưu tiên hơn bất cứ môi trường hiện tại nào:

jupyter kernelspec remove python3

Giải pháp đầy đủ

Tôi sẽ đăng một giải pháp thay thế và đơn giản hơn cho trường hợp sau:

  • Bạn đã tạo ra một môi trường conda
  • Môi trường này đã cài đặt jupyter (cũng cài đặt ipykernel)
  • Khi bạn chạy lệnh jupyter notebookvà tạo sổ ghi chép mới bằng cách nhấp vào 'python3' trong menu thả xuống 'Mới', sổ ghi chép đó sẽ thực thi python từ môi trường cơ sở chứ không phải từ môi trường hiện tại.
  • Bạn muốn nó khởi chạy một notebook mới với 'python3' trong bất kỳ môi trường nào thực thi phiên bản Python từ môi trường đó và KHÔNG phải là cơ sở

Tôi sẽ sử dụng tên 'test_env' cho môi trường cho phần còn lại của giải pháp. Ngoài ra, lưu ý rằng 'python3' là tên của kernel.

Câu trả lời được bình chọn hàng đầu hiện nay có tác dụng, nhưng có một cách khác. Nó nói để làm như sau:

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

Điều này sẽ cung cấp cho bạn tùy chọn sử dụng môi trường test_env bất kể bạn khởi chạy jupyter notebooktừ môi trường nào . Nhưng, khởi chạy một notebook với 'python3' vẫn sẽ sử dụng cài đặt Python từ môi trường cơ sở.

Những gì có khả năng đang xảy ra là có một kernel python3 tồn tại. Chạy lệnh jupyter kernelspec listđể liệt kê tất cả các môi trường của bạn. Chẳng hạn, nếu bạn có máy mac, bạn sẽ được trả lại như sau (tên người dùng của tôi là Ted).

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

Những gì Jupyter đang làm ở đây là tìm kiếm thông qua ba con đường khác nhau để tìm hạt nhân. Nó đi từ Người dùng , đến Env , đến Hệ thống . Xem tài liệu này để biết thêm chi tiết về các đường dẫn mà nó tìm kiếm cho mỗi hệ điều hành.

Hai hạt nhân ở trên đều nằm trong đường dẫn Người dùng, nghĩa là chúng sẽ có sẵn bất kể môi trường mà bạn khởi chạy sổ ghi chép jupyter từ đó. Điều này cũng có nghĩa là nếu có một hạt nhân 'python3' khác ở cấp độ môi trường, thì bạn sẽ không bao giờ có thể truy cập nó.

Đối với tôi, điều có ý nghĩa hơn là việc chọn kernel 'python3' từ môi trường mà bạn đã khởi chạy notebook từ đó sẽ thực thi Python từ môi trường đó.

Bạn có thể kiểm tra xem bạn có môi trường 'python3' khác hay không bằng cách tìm trong đường dẫn tìm kiếm Env cho HĐH của bạn (xem liên kết đến các tài liệu ở trên). Đối với tôi (trên máy mac), tôi đã ban hành lệnh sau:

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

Và tôi thực sự đã có một hạt nhân 'python3' được liệt kê ở đó.

Nhờ nhận xét vấn đề GitHub này (xem phản hồi đầu tiên), bạn có thể xóa môi trường Người dùng 'python3' bằng lệnh sau:

jupyter kernelspec remove python3

Bây giờ khi bạn chạy jupyter kernelspec list, giả sử test_env vẫn hoạt động, bạn sẽ nhận được những điều sau:

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

Lưu ý rằng đường dẫn này nằm trong thư mục test_env. Nếu bạn tạo một môi trường mới, cài đặt jupyter, kích hoạt nó và liệt kê các hạt nhân, bạn sẽ nhận được một hạt nhân 'python3' khác nằm trong đường dẫn môi trường của nó.

Hạt nhân 'python3' được ưu tiên hơn bất kỳ hạt nhân Env 'python3' nào. Bằng cách loại bỏ nó, hạt nhân 'python3' của môi trường hoạt động đã bị lộ và có thể được chọn mỗi lần. Điều này giúp loại bỏ sự cần thiết phải tự tạo hạt nhân. Nó cũng có ý nghĩa hơn về mặt phát triển phần mềm, nơi người ta muốn tự cô lập mình trong một môi trường duy nhất. Chạy kernel khác với môi trường máy chủ có vẻ không tự nhiên.

Dường như Người dùng 'python3' này không được cài đặt cho mọi người theo mặc định, vì vậy không phải ai cũng phải đối mặt với vấn đề này.


python -m ipykernel cài đặt --user --name test_env --display-name "Python (test_env)" hoạt động như một bùa mê. Cảm ơn bạn
slobodan.blazeski

12
    $ conda install nb_conda_kernels

(trong môi trường conda nơi bạn chạy sổ ghi chép jupyter) sẽ làm cho tất cả các ena conda có sẵn tự động. Để truy cập vào các môi trường khác, các hạt nhân tương ứng phải được cài đặt. Đây là ref .


Không phải điều này chỉ tóm tắt lại stackoverflow.com/a/48349338/570918 sao?
merv

Điều này có vẻ như cách đơn giản nhất.
Decula

9

Chúng tôi đã đấu tranh rất nhiều với vấn đề này, và đây là những gì làm việc cho chúng tôi. Nếu bạn sử dụng kênh conda-forge , điều quan trọng là đảm bảo bạn đang sử dụng các gói được cập nhật từ conda-forge, ngay cả trong Minicondamôi trường gốc của bạn .

Vì vậy, cài đặt Miniconda , và sau đó làm:

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

và môi trường tùy chỉnh của bạn sẽ hiển thị trong Jupyter dưới dạng kernel có sẵn, miễn là ipykernelđược liệt kê để cài đặt trong custom_env.ymltệp của bạn , như ví dụ này:

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

Chỉ để chứng minh rằng nó hoạt động với một loạt các môi trường tùy chỉnh, đây là một màn hình lấy từ Windows:

nhập mô tả hình ảnh ở đây


8

Các nb_conda_kernelsgói là cách tốt nhất để sử dụng jupytervới conda. Với cấu hình và phụ thuộc tối thiểu, nó cho phép bạn sử dụng các môi trường conda khác từ máy tính xách tay jupyter chạy trong một môi trường khác. Trích dẫn tài liệu của nó :

Cài đặt

Gói này được thiết kế để được quản lý chỉ bằng cách sử dụng conda. Nó nên được cài đặt trong môi trường mà bạn chạy Jupyter Notebook hoặc JupyterLab. Đây có thể là basemôi trường conda của bạn , nhưng nó không cần phải như vậy. Chẳng hạn, nếu môi trường notebook_envchứa gói notebook, thì bạn sẽ chạy

conda install -n notebook_env nb_conda_kernels

Bất kỳ môi trường nào khác bạn muốn truy cập trong sổ ghi chép của bạn phải có gói hạt nhân thích hợp được cài đặt. Chẳng hạn, để truy cập môi trường Python, nó phải có ipykernelgói; ví dụ

conda install -n python_env ipykernel

Để sử dụng môi trường R, nó phải có gói r-irkernel; ví dụ

conda install -n r_env r-irkernel

Đối với các ngôn ngữ khác, hạt nhân tương ứng của chúng phải được cài đặt.

Sau đó, tất cả những gì bạn cần làm là khởi động máy chủ notebook 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

nhập mô tả hình ảnh ở đây


Mặc dù có rất nhiều câu trả lời và những nỗ lực của @ merv để cải thiện chúng, nhưng vẫn khó tìm được câu trả lời hay. Tôi đã tạo một CW này, vì vậy hãy bình chọn nó lên đầu hoặc cải thiện nó!



7

Tôi gặp vấn đề tương tự trong đó môi trường conda mới của tôi myenv, không thể được chọn làm kernel hoặc notebook mới. Và chạy jupter notebooktừ bên trong env cho kết quả tương tự.

Giải pháp của tôi và những gì tôi đã học được về cách máy tính xách tay Jupyter nhận ra conda-envs và hạt nhân:

Cài đặt jupyter và ipython myenvvới conda:

conda install -n myenv ipython jupyter

Sau đó, chạy jupter notebookbên ngoài bất kỳ env nào được liệt kê myenvdưới dạng kernel cùng với các môi trường trước đó của tôi.

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

Chạy notebook khi tôi kích hoạt môi trường:

source activate myenv
jupyter notebook

ẩn tất cả các hạt nhân môi trường khác của tôi và chỉ hiển thị các hạt ngôn ngữ của tôi:

python 2
python 3
R

6

Điều này làm việc cho tôi trong windows 10 và giải pháp mới nhất:

1) Đi vào bên trong môi trường conda đó (kích hoạt your_env_name)

2) cài đặt conda -n your_env_name ipykernel

3) cài đặt python -m ipykernel --user --name build_central --display-name "your_env_name"

(LƯU Ý: Bao gồm các trích dẫn xung quanh "your_env_name", trong bước 3)


4

Điều này thật là bực bội, Vấn đề của tôi là trong môi trường conda python36 mới được xây dựng, jupyter đã từ chối tải tải Seaborn Cá - mặc dù seaborn đã được cài đặt trong môi trường đó. Nó dường như có thể nhập nhiều tệp khác từ cùng một môi trường - ví dụ như numpy và gấu trúc nhưng không phải là cá ngựa. Tôi đã thử nhiều bản sửa lỗi được đề xuất ở đây và trên các chủ đề khác mà không thành công. Cho đến khi tôi nhận ra rằng Jupyter không chạy kernel python từ bên trong môi trường đó mà chạy python hệ thống như kernel. Mặc dù một kernel và kernel.json có vẻ đã sẵn sàng trong môi trường. Chỉ sau khi đọc phần này của tài liệu ipython: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-envirments và sử dụng các lệnh này:

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

Tôi đã có thể có được mọi thứ diễn ra tốt đẹp. (Tôi thực sự không sử dụng biến Người dùng).

Một điều tôi chưa tìm ra là làm thế nào để đặt con trăn mặc định thành con "Python (other-env)". Hiện tại, tệp .ipynb hiện có được mở từ Màn hình chính sẽ sử dụng hệ thống python. Tôi phải sử dụng menu Kernel Thay đổi kernel kernel để chọn python môi trường.


4

Mặc dù câu trả lời của @ coolscitist có hiệu quả với tôi, nhưng cũng có một cách không làm lộn xộn môi trường kernel của bạn với gói jupyter hoàn chỉnh + deps. Nó được mô tả trong tài liệu ipython và (tôi nghi ngờ) chỉ cần thiết nếu bạn chạy máy chủ máy tính xách tay trong môi trường không có cơ sở.

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'

Bạn có thể kiểm tra nếu nó hoạt động bằng cách sử dụng

conda activate name_of_your_jupyter_server_env 
jupyter kernelspec list

1
Trên thực tế, cập nhật jupyter và sử dụng conda install nb_conda_kernelshoạt động tốt hơn.
jan-glx

Chỉ cần lưu ý rằng đó python -m ipykernel installlà con đường truyền thống để đăng ký một env và hoạt động cho các env khác (không phải Conda). Ý tưởng đằng sau nb_conda_kernelslà bạn không cần phải làm thủ công, miễn là bạn cài đặt ipykernel.
merv

Đúng! Tôi đã biến nhận xét này thành câu trả lời độc lập này .
jan-glx

2

Tôi gặp vấn đề tương tự và tôi đã tìm thấy một giải pháp hoạt động cho Mac, Windows và Linux. Phải mất một vài thành phần chính trong câu trả lời ở trên:

Để có thể xem conda env trong sổ ghi chép Jupyter, bạn cần:

  • gói sau trong cơ sở của bạn env:
    conda install nb_conda

  • gói sau trong mỗi env bạn tạo:
    conda install ipykernel

  • kiểm tra cấu hình của jupyter_notebook_config.py
    lần kiểm tra đầu tiên nếu bạn có một jupyter_notebook_config.pytrong một vị trí được cung cấp bởi jupyter --paths
    nếu nó không tồn tại, hãy tạo nó bằng cách chạy jupyter notebook --generate-config
    thêm hoặc chắc chắn rằng bạn có những điều sau đây:c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'

Các env bạn có thể thấy trong thiết bị đầu cuối của bạn: nhập mô tả hình ảnh ở đây

Trên Jupyter Lab, bạn có thể thấy env giống như trên cả Notebook và Console: nhập mô tả hình ảnh ở đây

Và bạn có thể chọn env của mình khi mở sổ ghi chép: nhập mô tả hình ảnh ở đây

Cách an toàn là tạo một env cụ thể mà từ đó bạn sẽ chạy ví dụ vềjupyter lab lệnh env . Kích hoạt env của bạn. Sau đó thêm ví dụ mở rộng phòng thí nghiệm jupyter mở rộng phòng thí nghiệm jupyter . Sau đó bạn có thể chạy jupyter lab


1

Làm theo các hướng dẫn trong tài liệu iPython để thêm các môi trường conda khác nhau vào danh sách các hạt nhân để chọn trong Notebook Jupyter. Tóm lại, sau khi cài đặt ipykernel, bạn phải kích hoạt từng môi trường conda từng cái một trong một thiết bị đầu cuối và chạy lệnh python -m ipykernel install --user --name myenv --display-name "Python (myenv)", myenvmôi trường (kernel) mà bạn muốn thêm vào.


1

Vấn đề cụ thể về kênh

Tôi đã có vấn đề này (một lần nữa) và hóa ra tôi đã cài đặt từ kênh conda-forge ; loại bỏ nó và cài đặt lại từ kênh anaconda thay vì sửa nó cho tôi.

Cập nhật : Tôi lại gặp vấn đề tương tự với một env mới, lần này tôi đã cài đặt nb_conda_kernelstừ kênh anaconda , nhưng tôi jupyter_clientlà từ kênh conda-forge . Gỡ nb_conda_kernelscài đặt và cài đặt lại cập nhật lên kênh ưu tiên cao hơn.

Vì vậy, hãy chắc chắn rằng bạn đã cài đặt từ các kênh chính xác :)


Âm thanh như bạn có thể có một số điều trộn lẫn. jupyternb_conda_kernelsnên được cài đặt trong một env - đây là nơi bạn luôn chạy jupyter notebooktừ đó. Envs mới chỉ cần ipykernel, nhưng không nên kích hoạt khi chạy jupyter notebook.
merv

1
Tôi biết, đó là trên một máy mới.
xyzzyqed

1
Được chứ. Tôi đã chỉnh sửa câu trả lời của bạn, chủ yếu để tôi có thể thay đổi phiếu bầu của mình, nhưng cũng để làm rõ những gì bạn đang gọi kênh conda (không phải là một điều - mặc định hoặc anaconda ). Vui lòng chỉnh sửa thêm nếu tôi hiểu sai những gì đã xảy ra.
Merv

-1

Trong trường hợp của tôi, sử dụng Windows 10 và conda 4.6.11, bằng cách chạy các lệnh

conda install nb_conda

conda install -c conda-forge nb_conda_kernels

từ thiết bị đầu cuối trong khi môi trường hoạt động không thực hiện công việc sau khi tôi mở Jupyter từ cùng một dòng lệnh sử dụng conda jupyter notebook.

Giải pháp rõ ràng là mở Jupyter từ Anaconda Navigator bằng cách đến môi trường của tôi trong Môi trường: Mở Anaconda Navigator, chọn môi trường trong Môi trường, nhấn nút "phát" trên môi trường đã chọn và chọn 'mở bằng Jupyter Notebook'.

Môi trường trong Anaconda Navigator để chạy Jupyter từ môi trường đã chọn


1
Hãy xem tài liệu về cách sử dụng hạt nhân Conda. Bạn khởi chạy Jupyter từ env có Jupyter; bạn cài đặt ipykerneltrong tất cả các env mà bạn muốn sử dụng trong Jupyter dưới dạng hạt nhân.
merv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.