web-dev-qa-db-ja.com

virtualenvでJupyterノートブックを実行する:インストール済みのsklearnモジュールは利用できません

Virtualenv machinelearnを作成し、その環境にいくつかのpythonモジュール(pandas、scipy、sklearn)をインストールしました。

Jupyterノートブックを実行すると、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ノートブックにsklearnをインポートするにはどうすればよいですか?

18

おそらくvirtualenvにjupyter/IPythonをインストールしていないでしょう。以下を試してください:

python -c "import IPython"

jupyterコマンドが$PATHは、venvのbinフォルダーからのものです。

which jupyter

PowerShellコンソールのWindowsユーザーの場合、次を使用して、jupyterコマンドが$env:Pathは、venvのScriptsフォルダーからのものです。

get-command jupyter

編集:これが問題であれば、単にpython -m pip install jupyterあなたのvenvで。

編集2:実際には以下も必要かもしれません:

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

次に、jupyterユーザーインターフェイスで「my-virtualenv-name」という名前のカーネルを切り替えます。

24
ogrisel

別のアプローチとして、1つのグローバル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ノートブックメニューにカーネルが表示されるはずです。カーネル->カーネルを変更して、カーネルに切り替えることができます(リストに表示される前にページを更新する必要がある場合があります)。 IPythonは、それ以降、そのノートブックに使用するカーネルを記憶します。

19
ClimbsRocks

Jupyterが仮想環境ではなくマシンにインストールされていると仮定します。

Jupyterノートブックで仮想環境を使用する

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を繰り返します。

それが役に立てば幸い!

3
pujanm

仮想環境(virtualenvwrapperを使用)とその環境にインストールされたパッケージでJupyterノートブックを使用するには、以下の手順に従います。

  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ノートブックを使用できます。

    jupyter-notebook
    

免責事項:質問は回答済みですが、返信の1つに隠されています。私はグーグルで正しい答えを見つけるために時間を取った。それで、同じ問題を抱えている人が簡単にフォローできるように要約します。

3
C. Feng

python3 -m venvコマンドを使用したvirtualenvの作成

私はあなたと同じ問題を抱えていました。私の場合、コマンドでvirtualenvを作成しました

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

問題は、system-site-packageに既に存在するため、仮想環境内にjupyterをインストールできなかったことです(インストールしようとすると、「要件は既に​​満たされています」と表示されます)。

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

次を使用して仮想環境を作成した場合、仮想環境内にjupyterをインストールできます。

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

これを行うだけです:

activate-your-env
pip install -I jupyter

これで準備完了です

jupyter notebook
0
Vijay Kumar