2015-10-28 13 views
5

iPythonでノートブックをインポートしようとしました(更新後のJupyter)。しかし、何らかの理由で、私はrootユーザーとして実行する場合にのみ、ノートブックをインポートすることができます。それ以外の場合は、すべてのノートブックで次のエラーが発生します。Ipython Notebookルートとしてのみ実行

このノートブックの読み込み中に不明なエラーが発生しました。このバージョン は、ノートブックフォーマットv4以前をロードできます。サーバーログで の詳細を参照してください。

iPython3ノートブックはノートブックを読み込むことができます。 この問題を解決するためにできることはありますか?

[W 23:04:29.100 NotebookApp] 404 GET /static/components/MathJax/config/Safe.js?rev=2.5.3 (127.0.0.1) 40.67ms referer=http://localhost:8889/notebooks/Challenges/German%20Credit%20Dataset%20Classification%20-%20Challenge%201/GermanCreditCardClassification.ipynb 
[E 23:04:29.377 NotebookApp] Unhandled error in API request 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/notebook/base/handlers.py", line 436, in wrapper 
     result = yield gen.maybe_future(method(self, *args, **kwargs)) 
     File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 870, in run 
     value = future.result() 
     File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result 
     raise_exc_info(self._exc_info) 
     File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 230, in wrapper 
     yielded = next(result) 
     File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/handlers.py", line 129, in get 
     path=path, type=type, format=format, content=content, 
     File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/filemanager.py", line 348, in get 
     model = self._notebook_model(path, content=content) 
     File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/filemanager.py", line 308, in _notebook_model 
     self.mark_trusted_cells(nb, path) 
     File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells 
     trusted = self.notary.check_signature(nb) 
     File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 220, in check_signature 
     if self.db is None: 
     File "/usr/local/lib/python2.7/dist-packages/traitlets/traitlets.py", line 439, in __get__ 
     value = self._validate(obj, dynamic_default()) 
     File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 126, in _db_default 
     db = sqlite3.connect(self.db_file, **kwargs) 
    OperationalError: unable to open database file 
[E 23:04:29.389 NotebookApp] { 
     "Accept-Language": "en-US,en;q=0.8", 
     "Accept-Encoding": "gzip, deflate, sdch", 
     "Connection": "keep-alive", 
     "Accept": "application/json, text/javascript, */*; q=0.01", 
     "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36", 
     "Dnt": "1", 
     "Host": "localhost:8889", 
     "X-Requested-With": "XMLHttpRequest", 
     "Referer": "http://localhost:8889/notebooks/Challenges/German%20Credit%20Dataset%20Classification%20-%20Challenge%201/GermanCreditCardClassification.ipynb" 
    } 
[E 23:04:29.390 NotebookApp] 500 GET /api/contents/Challenges/German%20Credit%20Dataset%20Classification%20-%20Challenge%201/GermanCreditCardClassification.ipynb?type=notebook&_=1449266668869 (127.0.0.1) 134.27ms referer=http://localhost:8889/notebooks/Challenges/German%20Credit%20Dataset%20Classification%20-%20Challenge%201/GermanCreditCardClassification.ipynb 

Ipython詳細 サーバ情報:

You are using Jupyter notebook. 

The version of the notebook server is 4.0.2 and is running on: 
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] 

Current Kernel Information: 

unable to contact kernel 

OS:Linuxのミントのx64 3.13.0-37-GENERICカーネル

回答上で実行されている:。 KTのソリューションの作品。最初にJupyterをrootとして走らせたところ、KTのようにroot以外のユーザーがファイルにアクセスできなくなったと思います。

+2

最初の明らかな質問は次のとおりです。サーバーログは何を表していますか? –

+0

どのPython、Jupyter、OS、...? これをどのように再現できますか? – user1836587

+0

@KT。サーバログを追加しました – ritz

答えて

3

[OK]をここで推測してみましょう。

ipython notebookを初めて実行したときは、rootになりました。その結果、Jupyterが使用するファイルの一部は、最初から所有されていたrootとして作成されました。 Jupyterをroot以外のユーザーとして実行すると、そのファイルに書き込まれず、結果として表示されるエラーが発生することは驚くことではありません。

ログに表示される特定の状況では、Jupyterはnbsignatures.db SQLiteデータベースへの書き込みに問題があります。このファイルはJupyterのDATA_DIRに置く必要があります。通常は~/.local/share/jupyterのようなものです。

このディレクトリがない場合は、例えば、ipythonを実行し、これを行うことによってそれを見つけることができますが:あなたが今行う必要がある何

In [1]: from jupyter_core.application import JupyterApp 
In [2]: JupyterApp().data_dir 
Out[2]: u'/home/ubuntu/.local/share/jupyter' 

は、そのディレクトリ内のすべてがあることを確認することですルートではなく正しいユーザーが所有しています。これは、

# chown -R <yourusername>.<yourusername> ~/.local/share/jupyter 

のようなことを意味する可能性があります。

+0

「〜/ .local/share/jupyter」の設定ファイルは実際にはルート所有者であり、インストール時に生成される可能性があります。 – agold

0

私はちょうど同様の問題がありました。 私のエラーメッセージの下に添付されています。

[E 19:32:53.893 NotebookApp] Unhandled error in API request 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site-packages/notebook/base/handlers.py", line 436, in wrapper 
    result = yield gen.maybe_future(method(self, *args, **kwargs)) 
    File "/usr/local/lib/python2.7/site-packages/tornado/gen.py", line 870, in run 
    value = future.result() 
    File "/usr/local/lib/python2.7/site-packages/tornado/concurrent.py", line 215, in result 
    raise_exc_info(self._exc_info) 
    File "/usr/local/lib/python2.7/site-packages/tornado/gen.py", line 230, in wrapper 
    yielded = next(result) 
    File "/usr/local/lib/python2.7/site-packages/notebook/services/contents/handlers.py", line 126, in get 
    path=path, type=type, format=format, content=content, 
    File "/usr/local/lib/python2.7/site-packages/notebook/services/contents/filemanager.py", line 350, in get 
    model = self._notebook_model(path, content=content) 
    File "/usr/local/lib/python2.7/site-packages/notebook/services/contents/filemanager.py", line 310, in _notebook_model 
    self.mark_trusted_cells(nb, path) 
    File "/usr/local/lib/python2.7/site-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells 
    trusted = self.notary.check_signature(nb) 
    File "/usr/local/lib/python2.7/site-packages/nbformat/sign.py", line 220, in check_signature 
    if self.db is None: 
    File "/usr/local/lib/python2.7/site-packages/traitlets/traitlets.py", line 439, in __get__ 
    value = self._validate(obj, dynamic_default()) 
    File "/usr/local/lib/python2.7/site-packages/nbformat/sign.py", line 127, in _db_default 
    self.init_db(db) 
    File "/usr/local/lib/python2.7/site-packages/nbformat/sign.py", line 139, in init_db 
    )""") 
DatabaseError: database disk image is malformed 

[E 19:32:53.895 NotebookApp] { 
     "Accept-Language": "en,zh-CN;q=0.8,zh;q=0.6,zh-TW;q=0.4,fr;q=0.2,es;q=0.2", 
     "Accept-Encoding": "gzip, deflate, sdch", 
     "Connection": "keep-alive", 
     "Accept": "application/json, text/javascript, */*; q=0.01", 
     "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36", 
     "Host": "localhost:8888", 
     "Referer": "http://localhost:8888/notebooks/trajectory_analysis.ipynb", 
     "X-Requested-With": "XMLHttpRequest" 
    } 

は、私は、ファイルを削除することによってそれを解決: nbsignatures.db。

OSX上のJupyterの位置はシステム依存性であるので、最初の使用してファイルを見つけ:

jupyter --data-dir 

そして、それにnbsignatures.dbを除去します。

参照:DatabaseError: database disk image is malformed #9293

関連する問題