web-dev-qa-db-ja.com

Jupyterノートブック、間違ったsys.pathおよびsys.executable

JupyterNotebookでpythonライブラリのanacondaディストリビューションを実行しようとしていますが、ノートブックを実行すると、pythonパスがMac OS X10.11からのデフォルトのディストリビューションに設定

Sys.pathとsys.executableを印刷すると、pythonとjupyterノートブックの実行時で違います。たとえば、

from pprint import pprint as p
import sys

p(sys.path)

pythonでこれを行った後、正しい出力が得られます:

['',
 '/Users/glennraskovich/anaconda2/lib/python27.Zip',
 '/Users/glennraskovich/anaconda2/lib/python2.7',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-darwin',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-mac',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-tk',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-old',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-dynload',
 '/Users/glennraskovich/anaconda2/lib/python2.7/site-packages',
 '/Users/glennraskovich/anaconda2/lib/python2.7/site-packages/aeosa']

しかし、これをjupyter Notebookで実行すると、次のようになります。

['', '/usr/local/lib/python2.7/site-packages/dask-0.11.0-py2.7.Egg', '/usr/local/lib/python2.7/site-packages/networkx-1.11-py2.7.Egg', '/usr/local/lib/python2.7/site-packages/six-1.10.0-py2.7.Egg', '/usr/local/lib/python2.7/site-packages/Pillow-3.3.1-py2.7-macosx-10.11-x86_64.Egg', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages', '/usr/local/lib/python2.7/site-packages/IPython/extensions', '/Users/glennraskovich/.ipython']

Sys.executableの場合、

p(sys.executable)

Pythonでは、正しい出力:

/Users/glennraskovich/anaconda2/bin/python

しかし、jupyterノートブックでは、sys.executableがanacondaバージョンに設定されていません

/usr/local/opt/python/bin/python2.7

.bashrcと.bash_profileでPATHを設定し、コマンドを使用してみました。どのpython、どのjupyterなどがanacondaパスを表示しますが、jupyternotebookはanacondaパスを使用していません。ここで問題は何でしょうか?

8
Glenn Raskovich

カーネルがデフォルトのmacos xを使用するように設定されていたので、解決策を見つけましたpythonコマンドを使用して修正しました

python2 -m pip install ipykernel

python2 -m ipykernel install --user

9
Glenn Raskovich

私の場合、環境を作成した後にJupyterをインストールしましたが、ベース環境からインストールされたモジュールを実行しようとしました。 「jupyterkernelspeclist」( https://github.com/jupyter/notebook/issues/256 )、C:\ Users\username\Anaconda37\share\jupyterにある私のkernel.jsonで見つけました\ kernels\python3\kernel.jsonは、作業環境のpython.exeを指していた。パスを変更して解決しました。

This はpythonパス設定の徹底的な説明でした。

1
alchemy

Anaconda Navigatorとコマンドラインを使用したときに、この問題が発生しました。コンソールに「sourceactivate」と入力し、AnacondaNavigatorを使用してJupyterを開きました。しかし、Anaconda Navigatorでは、問題の原因となった適切な環境にいませんでした。これは、Anaconda Navigatorには仮想環境用の独自のアクティベーションが付属しているためです(仮想環境をクリックした場合)。したがって、コンソールから仮想環境をアクティブ化してからコンソールからJupyterを起動するか、AnacondaNavigatorで仮想環境をアクティブ化してナビゲーターからJupyterを起動する必要があります。両方の方法が機能しますが、組み合わせることはできません。 :-)

0
Maren