web-dev-qa-db-ja.com

JupyterとPythonで異なるsys.path-Jupyterで独自のモジュールをインポートする方法は?

Jupyterでは、自分の小さなモジュールはロードされませんが、python/bpythonではすべて問題ありません。入力するとき

import sys
print(sys.path)

私のモジュールへのパスはJupyterでは表示されませんが、python/bpythonでは表示されます。

私は使っている:

  1. .bashrcのPYTHONPATHにモジュールを含め、
  2. Virtualenv内のJupyterとbpython。

最も類似した質問はこれです jupyterノートブックにモジュールをインポートできません; sys.pathが間違っています

モジュールを自動的にロードするようにJupyterを構成する方法は?

44
ulf

Jupyterノートブックのプロジェクトで私がしていることは、

import sys
sys.path.append("../") # go to parent dir
from customFunctions import *

次に、customFunctions.pyの変更に影響を与えるために、

%load_ext autoreload
%autoreload 2
32
Dogan Askan

Jupyterには独自のPATH変数JUPYTER_PATHがあります。

この行を.bashrcファイルに追加するとうまくいきました:

export JUPYTER_PATH=<directory_for_your_module>:$JUPYTER_PATH
15
N. P.

Jupyterはipythonのベースであり、永続的な解決策はipythonの構成オプションを変更することです。

構成ファイルを作成する

$ ipython profile create
$ ipython locate
/Users/username/.ipython

構成ファイルを編集します

$ cd /Users/username/.ipython
$ vi profile_default/ipython_config.py

次の行を使用すると、モジュールパスをsys.pathに追加できます。

c.InteractiveShellApp.exec_lines = [
    'import sys; sys.path.append("/path/to/your/module")'
]

Jupyterの起動時に、前の行が実行されます

ここでは、ipython configの詳細を確認できます https://www.lucypark.kr/blog/2013/02/10/when-python-imports-and-ipython-does-not/

6
Mattia Fantoni