2015-11-03 22 views
22

Jupyterノートブック内から長時間実行するPythonスクリプトを実行して、途中で生成されたデータ構造をハックすることができます。特定のvirtualenvを使用してJupyterノートブック内でPythonスクリプトを実行

スクリプトには多くの依存関係とコマンドライン引数があり、特定のvirtualenvで実行されます。特定のvirtualenv(Jupyterインストールのそれとは違う)からノートブックの中で対話的にPythonスクリプトを実行することは可能ですか?

ありがとう!

+0

いいえ、私はそうは思わない。 – cel

+0

あなたの問題を解決する別の方法はPyCharmのようなIDEを使うことです。あなたのプロジェクトに使用するvirtualenvを選択し、いくつかのブレークポイントを追加するだけです。実行がブレークポイントで一時停止すると、対話的にPythonコードを実行できます。 また、pdb(https://docs.python.org/3.5/library/pdb.html)をご覧ください。 – elgehelge

答えて

12

私は、このリンクは非常に有用であることが判明:

https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/

はあなたのvirtualenvのにjupyterをインストールピップていることを確認してください。後でリンクが消える場合は、ここに要点があります:

新しいカーネルを作成する必要があります。あなたはJSONファイルでカーネルを指定します。あなたのカーネルは通常~/.ipython/kernelsにあります。あなたのvirtualenvの名前でディレクトリを作成し、その中にkernel.jsonファイルを作成します。例えば、私のパスのいずれかが~./ipython/kernels/datamanip/kernel.json

のように見えますここに私のkernel.jsonファイルは次のようになります。

{ 
    "display_name": "Data Manipulation (Python2)", 
    "language": "python", 
    "codemirror_mode": { 
    "version": 3, 
    "name":"ipython" 
    }, 
    "argv": [ 
    "/Users/ed/.virtualenvs/datamanip/bin/python", 
    "-c", 
    "from IPython.kernel.zmq.kernelapp import main; main()", 
    "-f", 
    "{connection_file}" 
    ] 
} 

私はcodemirror_modeオブジェクトがやっているまさに確かではないけど、それはしていないようです何か危害を加えなさい。

+0

あなたがSOでアクティブであるかどうかわかりません。あなたが言及した要点のリンクを提供することができればどんなチャンスですか? – David

+0

私は、新しく作成した仮想環境用のpythonバイナリのパスに手作業で変更する必要がありました。 – ionox0

19

ノートブックのカーネルを他のノートブックで利用できるようにするもう少し簡単な方法です。

私はLinux + virtualenv + virtualenvwrapperを使用しています。異なるセットアップを使用している場合は、いくつかのコマンドを適切なものに変更してください。

mkvirtualenv jupyter2 
workon jupyter2 
(jupyter2) pip install jupyter 
(jupyter2) ipython kernel install --name "jupyter2_Python_2" --user 

最後のコマンドは~/.local/share/jupyter/kernels/jupyter2\ python\ 2/ディレクトリ

mkvirtualenv -p /usr/bin/python3 jupyter3 
// this uses python3 as default python in virtualenv 
workon jupyter3 
(jupyter3) pip install jupyter 
(jupyter3) ipython kernel install --name "jupyter3_Python_3" --user 

のために同じものを完了したら、あなたは関係なく、あなたがjupyterを開始するために使用しているもののenv、両方のカーネルを参照してくださいべきではありませんが作成されます。 ~/.local/share/jupyter/kernels/に直接カーネルへのリンクを削除することができます。 場所を指定する場合は、ipython kernel install (--help)にオプションを指定するか、1つのノートブックから複数のケレンネルを実行する場合は~/.local/share/jupyter/kernels/~/envs/jupyter3/share/jupyterのディレクトリをコピーしてください。

3

@歌手の解決策は私にとっては役に立たなかった。ここで働いていたものです:

. /path/to/virtualenv/.venv/bin/activate 
python -m ipykernel install --user --name .venv --display-name .venv 

参考:Kernels for different environments(公式ドキュメント)

+0

でも '' ipython.readthedocs'' http://ipython.readthedocs.io/en/stable/install/kernel_install.html ..最新の参照用 – muon

+0

これは最新のリファレンスですが、テキストが変更された場合、私の参照は無効になります。だから私はgitのリンクを与えたのです。 –

+0

申し訳ありませんあなたのリンクを確認してください:( – muon

15

はここ(非condaのpython)私のために働いていたものです:。 (MacOSの、パイソンの醸造バージョン使用すると、システムのpythonを使用している場合、例えば、その後、新たに開始する場合は、sudoと、各コマンド)

最初のアクティブ化virtualenvの

を付加必要があります(ます)があり、あなたは

(py2env)$ python -m ipykernel install --user --name testenv --display-name "Python2 (py2env)" 

その後、ノートブックをjupyter起動設定、

$pip install virtualenvwrapper 
$mkvirtualenv -p python2 py2env 
$workon py2env 

# This will activate virtualenv 

(py2env)$ 

# Then install jupyter within the active virtualenv 
(py2env)$ pip install jupyter 

# jupyter comes with ipykernel, but somehow you manage to get an error due to ipykernel, then for reference ipykernel package can be installed using: 
(py2env)$ pip install ipykernel 

次virtualenvwrapperカーネルを使用することができjupyterに

(py2env)$ jupyter notebook 
# or 
#$ jupyter notebook 

(venvは、このステップのために有効にする必要はありません)ノートブックのドロップダウンメニュー:Kernel >> Change Kernel >> <list of kernels>Python2 (py2env)カーネル

これにより、Pythonバージョンのカーネルを簡単に識別し、どちらかを並行して維持することもできます。ここ

は、それはあなたがあなたのIPythonのノートPC用にvirtualenvを使用することができますdocumentation

に基づいて、本当に簡単です詳細ドキュメント http://ipython.readthedocs.io/en/stable/install/kernel_install.html

+0

ここで良いこと、ありがとう。私はipykernelのインストール手順を初めて行ったとき、それは取ることはなかったと言いたい。 –

6

へのリンクです。次のステップ、ステップ1のため、実際には不要に従ってください、ちょうどあなたが私の-virtualenvの名の#はあなたのvirtualenvのをアクティブにworkonあなたはvirtualenvに

をipythonカーネルモジュールをインストールしsource ~/path-to-your-virtualenv/

  1. を経由してあなたのvirtualenvのをアクティブにしますあなたがいない場合は、すでに ピップは

  2. をipykernelインストール(最も重要なステップ)今カーネル「自己インストール」のスクリプトを実行します。

    python -m ipykernel install --user --name = my-virtualenv-name --nameパラメーターを適切に置き換えます。

  3. カーネルは、IPythonのノートブックメニュー:Kernel -> Change kernelで見ることができるはずです。リストに表示される前に、ページを更新する必要があるかもしれません。 IPythonはその後、そのノートブックにどのカーネルを使うべきかを覚えています。

+0

ステップ1では、仮想envのスクリプトフォルダのpipを使用してipythonカーネルをインストールしますか?ステップ2では、スクリプトを実行しますか? Python。仮想環境のスクリプトフォルダにexeファイルがありますか?手順3では、どのディレクトリからノートブックを実行する必要がありますか? –

関連する問題