web-dev-qa-db-ja.com

jupyterノートブックにモジュールをインポートできません。間違ったsys.path

IPython/Jupyterノートブックでのモジュールのインポートに問題があります。基本的に問題は、sys.pathが指している場所にあります。

IPython/Jupyterノートブックから、sys.executable 戻り値:

'/usr/bin/python'

ただし、コマンドラインからは次を返します。

'//anaconda/bin/python'

Anacondasのアンインストールと再インストールを試みましたが、問題はまだ残っています。

また、bash_profileの$ PYTHONPATHを拡張して// anaconda/bin/pythonを追加しようとしましたが、これで解決しません。

とにかく、単にsys.path.append(...)を使用せずに、jupyterノートブックのsys.pathを永続的に変更する方法はありますか?

13
runawaykid
  1. 新しいターミナルウィンドウを開き、これが役立つかどうかを確認します。そうでない場合は、2に進みます。

  2. ターミナルから標準のPythonセッションを開始し、次のように入力します。

    >>> import sys
    >>> sys.executable
    
  3. ノートブックで同じことを行います:

    In [1]: import sys
            sys.executable
    
  4. 結果を比較します。うまくいけば、これはあなたに何が起こっているのか手掛かりを与えます。

3
Mike Müller

同じ問題がありました。他の場所で見つかったこの問題に対する多くの(あまりにも多くのような)解決策を試した後、少なくとも私の場合に機能する解決策を見つけ出すことができました。

手順1:anaconda環境の正しい実行可能パスを確認します。

コマンドラインに移動し、問題のあるconda環境をアクティブ化し、環境の正しい実行可能パスを確認します。

conda activate {envronment name};
次にpython console、(>>>)import sys;sys.executable

たとえばLinuxでは/media/{username}/{path-to}/anaconda3/envs/{environment name}/bin/pythonになります

ステップ2:jupyterセッションの実行可能パスを修正します。

コマンドラインから、問題のあるconda環境のkernel.jsonが配置されているパスを確認します。

jupyter kernelspec list

たとえば、Linuxでは次のようになります:/home/{username}/.local/share/jupyter/kernels/{environment name}

以下に示すように、そのフォルダーにあるkernel.jsonを開き、誤った実行可能ファイルのパスを置き換えます。

{
 "argv": [
  "REPLACE-THIS-WITH-THE-CORRECT-EXECUTABLE-PATH",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "heterodimers",
 "language": "python"
}

これがあなたのケースでもうまくいくことを願っています。

1
rraadd88