簡體   English   中英

ModuleNotFoundError:沒有名為“sklearn”的模塊

[英]ModuleNotFoundError: No module named 'sklearn'

我想導入 sklearn 但顯然沒有模塊:

ModuleNotFoundError: No module named 'sklearn'

我正在使用 Anaconda 和Python 3.6.1 我到處都檢查過,但仍然找不到答案。

當我使用命令時: conda install scikit-learn這不就可以了嗎?
anaconda在哪里安裝package?

我正在檢查我的 python 庫中的框架,只有 numpy 和 scipy 沒有關於 sklearn 的信息。

請幫忙,我剛開始使用 python 包,尤其是通過 anaconda。

您可以只使用pip來安裝軟件包,即使您使用的是anaconda

pip install -U scikit-learn scipy matplotlib

這應該適用於安裝軟件包。

對於Python 3.x ,只需使用pip3

pip3 install -U scikit-learn scipy matplotlib

簡單的介紹


使用 Anaconda 時,需要了解自己工作的環境。

然后,在 Anaconda Prompt 中需要運行以下命令

conda $command -n $ENVIRONMENT_NAME $IDE/package/module

$command - 一個人打算使用的命令(參考文檔了解一般命令

$ENVIRONMENT NAME - 一個環境的名稱(如果一個在根目錄下工作, conda $command $IDE/package/module就足夠了)

$IDE/package/module - IDE 或包或模塊的名稱


解決方案


將留下以下兩個可能有助於解決問題的選項。

選項1

如果想將它安裝在根目錄中並且遵循要求-(Python(> = 2.7或> = 3.4),NumPy(> = 1.8.2),SciPy(> = 0.13.3)。)-以下將解決這個問題:

conda install scikit-learn

假設有人在名為ML環境中工作。

那么以下將解決一個人的問題:

conda install -n ML scikit-learn

注意:如果需要安裝/更新包,邏輯與介紹中提到的相同。 如果您需要有關Anaconda 軟件包的更多信息,請查看文檔


選項 2

如果上述方法不起作用,在 Anaconda Prompt 上也可以使用 pip (這里是如何 pip install scikit-learn )所以以下內容可能會有所幫助

pip install scikit-learn

如果您使用帶有 python3.xxx 的 Ubuntu 18.04 或更高版本,請嘗試此命令

$ sudo apt install python3-sklearn 

然后試試你的命令。 希望它會工作

我做了以下事情:

import sys
!{sys.executable} -m pip install sklearn

我嘗試了很多東西,但最后,包括使用自動化工具卸載。 所以,我已經手動卸載了 scikit-learn。

sudo rm -R /home/ubuntu/.local/lib/python3.6/site-packages/sklearn
sudo rm -R /home/ubuntu/.local/lib/python3.6/site-packages/scikit_learn-0.20.0-py3.6.egg-info

並使用 pip 重新安裝

sudo pip3.6 install -U scikit-learn

希望可以幫助別人!

這發生在我身上,我嘗試了所有可能的解決方案,但沒有運氣!

最后我意識到問題出在 Jupyter notebook 環境,而不是 sklearn!

我通過在與 sklearn 相同的環境中重新安裝 Jupyter 解決了這個問題

命令是: conda install -c anaconda ipython 完畢...

anaconda 中 sklearn 的另一個名稱是 scikit-learn。 只需打開您的 anaconda 導航器,轉到環境,選擇您的環境,例如 tensorflow 或任何您想使用的環境,在已卸載軟件包列表中搜索 scikit_learn,應用它,然后您可以在 jupyter 中導入 sklearn。

解決了:

以上沒有幫助。 然后我只是從 Jypyter-lab 中安裝了 sklearn,即使 sklearn 0.0 顯示在“pip list”中:

!pip install sklearn
import sklearn

我后來了解到的是,就我而言,pip 將軟件包安裝在與 Jupyter 不同的文件夾中。 這可以通過執行:

import sys
print(sys.path)

一次從 Jupyter_lab 筆記本中,一次從命令行使用“py notebook.py”。

在我的情況下,Jupyter 的路徑列表中包含“anaconda”的子文件夾,而 Python 的列表中的子文件夾位於 c:\users[username]...

在 Windows 上,我有 python 3+ 版本。 pip 版本 - 22.3.1

我安裝了:

pip install sklearn

但是,它似乎已被 scikit-learn 棄用。

所以我做了:

pip install scikit-learn

而且,它奏效了!!!

原因

Conda 和 pip 在 ~/anaconda3/envs/$ENV/lib/python3.7/site-packages 下安裝 scikit-learn,但是 Jupyter notebook 在 ~/anaconda3/lib/python3.7/site-packages 下查找包。

因此,即使將環境指定為 conda,它也不起作用。

conda install -n $ENV scikit-learn # Does not work

解決方案

pip 3 在 ~/anaconda3/lib/python3.7/site-packages 下安裝包。

核實

在 pip3 之后,在 Jupyter 筆記本中。

import sklearn
sklearn.__file__

~/anaconda3/lib/python3.7/site-packages/sklearn/ init .py'

安裝這些 ==>> pip install -U scikit-learn scipy matplotlib 如果仍然出現相同的錯誤,請確保您的 imoprted 陳述應該是正確的。 我在寫合奏時犯了錯誤,(檢查拼寫)它應該是 >>> from sklearn.ensemble import RandomForestClassifier

我和作者遇到了同樣的問題,無論有沒有 Anaconda,也不管 Python 版本如何,我都遇到了這個問題。 每個人的環境都不一樣,但是在自己解決之后,我認為在某些情況下可能是由於安裝了多個版本的 Python。 每個安裝的 Python 版本都有自己的 \Lib\site-packages\ 文件夾,其中可以包含該 Python 版本的一組唯一模塊,並且 IDE 會在其中查找沒有 scikit-learn 的文件夾路徑。

嘗試解決問題的一種方法:您可能會清除系統中所有其他 Python 版本及其緩存/臨時文件/系統變量,然后在任何地方只安裝一個版本的 Python。 然后安裝依賴項 Numpy 和 Scipy,最后安裝 Scikit-learn。

更詳細的步驟:

  1. 卸載所有 Python 版本及其啟動器(例如,從 Windows 的控制面板中),除了您要保留的一個版本。 刪除 Python 目錄中的任何舊 Python 版本文件夾——卸載不會刪除所有文件。
  2. 從操作系統的環境變量中刪除其他 Python 版本(在系統和用戶變量部分下)
  3. 清除臨時文件。 例如,對於 Windows,刪除所有 AppData Temp 緩存文件(在 C:\Users\YourUserName\AppData\Local\Temp 中)。 此外,您還可以對其他臨時文件進行 Windows 磁盤清理,然后重新啟動。
  4. 如果您的 IDE 支持它,請在設置中創建一個新的虛擬環境,然后將您唯一安裝的 Python 版本設置為解釋器。
  5. 在您的 IDE 中,首先從模塊列表中安裝依賴項 Scipy 和 Numpy,然后安裝 Scikit-Learn。

正如其他一些人所建議的那樣,關鍵是確保您的環境設置正確,其中所有內容都指向您計算機上 Sklearn 包所在的正確庫文件夾。 有幾種方法可以解決這個問題。 我的方法更加激進,但事實證明我的系統上有一個非常混亂的 Python 設置,所以我不得不重新開始。

使用 Anaconda-navigator UI 環境

運行 Anaconda-navigator 時:

  • 選擇左側的“環境”選項卡並創建一個新環境(例如 ML - 請參閱上面的 Gonçalo Peres 回答,我制作了一個名為“CourseraML”的環境)。

  • 設置 Python 版本 3.7(適用於 Coursera 課程Applied Machine Learning in Python )。 還包括 R。

  • 然后使用“未安裝”下拉菜單項查找要安裝的模塊。 在搜索欄中搜索所需的每個模塊並選擇。 sklearnscikit-learn 的一部分。 選擇它並安裝(它應該找到所有相關的依賴項)。 Applied ML 課程所需的模塊:seaborn、numpy、scikit-learn、pandas、matplotlib

  • 您需要重新啟動 Jupyter Notebook 並重新打開您的文件。

上面的命令行版本:

conda install -n CourseraML seaborn scikit-learn pandas numpy matplotlib graphviz

原因- 您的 jupyter notebook 可能從另一個位置(路徑)導入 sklearn 和其他庫,而不是來自 conda 或 pip 的庫。

我的問題就我而言,我的 jupyter notebook 正在為 snap manager 導入庫。 因為,我使用 snap 而不是其他方式安裝 jupyter。

您可以使用以下代碼檢查其他庫在 jupyter 中的導入位置:

import cv2 as cv
print(cv.__file__)

解決方案因此,我卸載了 jupyter notebook,然后使用 conda 安裝 notebook。

 sudo snap remove jupyter

conda install -c conda-forge notebook

我有同樣的問題。 問題是當我們在多個 anaconda 環境中工作時,並非所有軟件包都安裝在所有環境中。 您可以通過在 anaconda 提示符中編寫以下代碼來檢查您的 conda 環境:

conda 環境列表

然后您可以檢查每個環境中安裝的軟件包:

conda list -n NAME_OF_THE_ENVIRONMENT

對我來說,我正在使用的環境缺少 sklearn,盡管該軟件包已安裝在其他環境中。

因此,我只是簡單地在那個特定環境中安裝了 sklearn 包

conda install -n NAME_OF_THE_ENVIRONMENT scikit-learn

問題已解決

暫無
暫無

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

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