簡體   English   中英

ModuleNotFoundError:Jupyter 筆記本中的“sklearn”

[英]ModuleNotFoundError: 'sklearn' in Jupyter notebook

在 Win10 上的 Python 3.7 上使用 Conda (4.8)。 我使用 conda conda install scikit-learn 嘗試了幾件事:還將它安裝在 env conda install -n my_env scikit-learn 還嘗試安裝conda install -c anaconda ipython - 沒有任何效果。

我可以列出來:

scikit-learn              0.22             py37h6288b17_0  

但是在 juypter notebook 中from sklearn.datasets import fetch_lfw_pairs得到錯誤(也嘗試過其他幾個命令) ModuleNotFoundError: No module named 'sklearn'

但是如果我使用 Anaconda UI Navigator 來啟動 notebook 一切正常

更新
盡管社區付出了很多努力並提供幫助和支持(如下所示),我還是嘗試了這個命令行選項對我不起作用。 同時,也可以從 Anaconda UI 本身啟動 Jupyter notebook。 這一直對我有用 - 不需要配置或設置(無) 我還沒有發現任何限制等(你確實得到了完全相同的筆記本)。 對於您可能需要微調配置 cmd 行的高級/獨特用例可能會有所幫助,我不在那里。 快樂編碼

很可能,您在啟動筆記本時加載了錯誤的內核。 這是設置環境的准系統方法:

conda create -n testenv python=3.7 -y

conda activate testenv

conda install scikit-learn
conda install ipython
conda install notebook

python -m ipykernel install --user --name testenv

當您在瀏覽器中單擊new時,您將在 python3 旁邊有一個附加選項,即您剛剛注冊的內核。 我剛剛用 anaconda 4.7 測試了這個,我可以導入 sklearn。

編輯:

答案中的代碼創建了一個新的 python 環境。 然后,它會在該環境中安裝 ipython 和 jupyter notebook,並確保該環境可以與 jupyter notebook 一起使用(即注冊 ipykernel)。

現在當然除了 scikit learn 之外,在該特定環境中還沒有安裝其他庫。

所以,如果你想使用更多的庫,你必須去命令行,激活環境,並安裝你想使用的庫:

conda activate testenv
conda install scipy numpy matplotlib

然后從環境中運行 jupyter notebook,在你安裝了你想要的所有東西之后(並且在關閉命令提示符或停用環境之后),你可以做

conda activate testenv
jupyter notebook

在命令提示符中。

Jupyterlab 通常會使用您啟動它的環境。 例如:

  1. 如果您先激活my_env然后從終端執行jupyter lab ,它應該檢測環境。
  2. 如果失敗,請轉到Kernel -> Change Kernel並選擇要使用的內核。

注意:在創建新內核時,我總是使用display-name參數來幫助。 您可以執行以下操作:

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

希望這可以幫助。

要解決此問題,您需要在Anaconda 中手動安裝此包。

如何安裝? 打開您的Anaconda Prompt並運行以下命令:

conda install -c conda-forge scikit-learn

然后重啟Jupyter Notebook並導入這個包。

我認為問題是環境沒有激活。 先嘗試conda activate my_env ,然后輸入jupyter notebook

你可以做的第一件事是:

import sys
print(sys.path)

檢查/path/to/anaconda/envs/my_env/lib/python3.7/site-packages中是否存在/path/to/anaconda/envs/my_env/lib/python3.7/site-packages

我發現打印當前的sys.path很有用,這樣我就知道它在看哪里。

conda info --envs

當 testEnv 存在時:

conda activate testEnv

conda list scikit-learn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM