簡體   English   中英

在 virtualenv 中運行 Jupyter notebook:安裝的 sklearn 模塊不可用

[英]Running Jupyter notebook in a virtualenv: installed sklearn module not available

我已經安裝了創建的virtualenv machinelearn並安裝在該環境中的幾個Python模塊(大熊貓,SciPy的和sklearn)。

當我運行 jupyter notebook 時,我可以在我的 notebook 中導入 pandas 和 scipy - 但是,當我嘗試導入 sklearn 時,我收到以下錯誤消息:

import sklearn

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-8fd979e02004> in <module>()
----> 1 import sklearn

ImportError: No module named 'sklearn'

我能夠在命令行導入所有模塊 - 所以我知道它們已經成功安裝:

(machinelearn) me@yourbox:~/path/to/machinelearn$ python -c "import pandas, scipy, sklearn"
(machinelearn) me@yourbox:~/path/to/machinelearn$ 

如何在運行在 virtualenv 中的 jupyter notebook 中導入 sklearn?

您可能還沒有在您的 virtualenv 中安裝 jupyter / IPython。 請嘗試以下操作:

python -c "import IPython"

並檢查在$PATH找到的jupyter命令是否來自 venv 的bin文件夾:

which jupyter

對於 powershell 控制台中的 Windows 用戶,您可以使用以下命令檢查$env:Path中的jupyter命令是否是您 venv 的Scripts文件夾中的命令:

get-command jupyter

編輯:如果這是問題所在,只需在您的 venv 中運行python -m pip install jupyter jupyter。

編輯 2 :實際上您可能還需要:

python -m ipykernel install --user --name=my-virtualenv-name

然后在 jupyter 用戶界面中切換名為“my-virtualenv-name”的內核。

另一種方法是安裝一個全局 jupyter,但指向不同的內核作為后端運行。

他們的文檔中概述了這種方法:http ://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs

在鏈接斷開的情況下復制以下內容:您可以為您的 IPython 筆記本使用 virtualenv。 請按照以下步驟操作:

將 ipython 內核模塊安裝到您的 virtualenv 中

workon my-virtualenv-name  # activate your virtualenv, if you haven't already
pip install ipykernel

現在運行內核“自安裝”腳本:

python -m ipykernel install --user --name=my-virtualenv-name

根據需要替換 --name 參數。

您現在應該能夠在 IPython notebook 菜單中看到您的內核:Kernel -> Change kernel 並能夠切換到它(您可能需要在它出現在列表中之前刷新頁面)。 從那時起,IPython 將記住該筆記本使用哪個內核。

要將 Jupyter notebook 與虛擬環境(使用 virtualenvwrapper)以及安裝在該環境中的軟件包一起使用,請按照以下步驟操作:

  1. 創建虛擬環境

    mkvirtualenv --no-site-packages --python=/your/python/path your_env_name
  2. 激活虛擬環境

    workon your_env_name
  3. 安裝 Jupyter 和其他軟件包

    pip install jupyter, numpy
  4. 將新內核添加到您的 Jupyter 配置中

    ipython kernel install --user --name=your_env_name
  5. 完畢。 您現在可以在虛擬環境下使用 Jupyter notebook。

     jupyter-notebook

免責聲明:該問題已得到回答,但隱藏在其中一個答復中。 我用谷歌搜索並花了一些時間找到正確的答案。 所以我只是總結一下,這樣有同樣問題的人可以很容易地關注。

假設 jupyter 安裝在您的機器上,而不是安裝在虛擬環境中。

在 Jupyter notebook 中使用虛擬環境

VENV_NAME = "你的虛擬環境名稱"

1) virtualenv VENV_NAME

2) source venv/bin/activate

3)如果不存在,請添加此包: pip3 install ipykernel

4)然后執行這個命令: ipython kernel install --user --name=VENV_NAME

5) 現在打開 Jupyter Notebook 並在更改內核中選擇VENV_NAME

6) 要安裝新包,請在終端中執行pip3 install <PACKAGE NAME>並重復步驟 4。

希望能幫助到你!

使用 python3 -m venv 命令創建 virtualenv

我和你有同樣的問題。 就我而言,我使用命令創建了 virtualenv

python3 -m venv ./my_virtual_env --system-site-packages

問題是我無法在虛擬環境中安裝 jupyter,因為它已經在 system-site-package 中(當您嘗試安裝它時,它會告訴您“要求已經滿足”)。

要安裝 jupyter,(在第一個實例中 pip,使用此命令不會在您的虛擬環境中安裝)但仍然可以訪問 system-site-package,您可以運行:

python3 -m venv ./my_virtual_env

激活您的虛擬環境,運行pip3 install jupyter (和pip3 install pip ),然后打開文件 ./my_virtual_env/pyvenv.cfg 中的 include-system-site-packages 選項。

在您的環境停用和重新激活后,您將可以訪問系統站點包。

使用 virtualenv 命令創建 virtualenv

鑒於此答案,您可以通過創建文件 ./my_virtual_env/lib/python3.4/no-global-site-packages.txt 來阻止對系統站點包的訪問,並通過刪除它來恢復訪問權限。

無需全局添加新內核的解決方案!!

  1. 通過創建一個新的虛擬環境
python3 -m virtualenv envname

  1. 激活您的環境並在其中安裝 jupyter
pip install jupyter

在安裝 jupyter 之前,您必須確保的一件事是您沒有安裝以下軟件包。

ipykernel             
ipython               
ipython-genutils      
ipywidgets            
jupyter               
jupyter-client        
jupyter-console     
jupyter-core 

如果您以前安裝過它們,請先通過pip uninstall卸載它們。

  1. 在激活的 virtualenv 中安裝所需的軟件包並在其中啟動 jupyter,瞧!

如果您使用以下方法創建了虛擬環境,您仍然可以在虛擬環境中安裝 jupyter:

python -m venv --system-site-packages path/to/my-venv

只需這樣做:

activate-your-env
pip install -I jupyter

你現在准備好了

jupyter notebook

暫無
暫無

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

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