Ipython: Tidak dapat membuka atau membuat notebook Jupyter baru

Dibuat pada 17 Nov 2015  ·  33Komentar  ·  Sumber: ipython/ipython

Saya baru saja menginstal Ubuntu 14.04 di laptop saya, dan menginstal IPython 4 melalui anaconda. Namun, saya tidak dapat membuka atau memuat buku catatan apa pun, termasuk yang terbuka dengan baik di desktop saya. Ketika saya mencoba memuat buku catatan, saya mendapatkan kesalahan berikut: An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.

Terminal memberikan:

Unhandled error in API request
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 432, in __get__
    value = obj._trait_values[self.name]
KeyError: 'db'

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/base/handlers.py", line 436, in wrapper
    result = yield gen.maybe_future(method(self, *args, **kwargs))
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/gen.py", line 870, in run
    value = future.result()
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "<string>", line 3, in raise_exc_info
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/gen.py", line 230, in wrapper
    yielded = next(result)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/handlers.py", line 126, in get
    path=path, type=type, format=format, content=content,
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 350, in get
    model = self._notebook_model(path, content=content)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 310, in _notebook_model
    self.mark_trusted_cells(nb, path)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells
    trusted = self.notary.check_signature(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 220, in check_signature
    if self.db is None:
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 439, in __get__
    value = self._validate(obj, dynamic_default())
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 126, in _db_default
    db = sqlite3.connect(self.db_file, **kwargs)
sqlite3.OperationalError: unable to open database file 

Ketika saya mencoba membuat buku catatan baru, saya mendapatkan kesalahan lain yang mengatakan, Unexpected error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret' Ini tampaknya lebih informatif, tetapi saya relatif baru di Linux/python/semua hal ini.

Terminal memberikan:

Error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied:     '/home/ryan/.local/share/jupyter/notebook_secret'
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 432, in __get__
    value = obj._trait_values[self.name]
KeyError: 'secret'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 387, in save
    self.check_and_sign(nb, path)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/manager.py", line 431, in check_and_sign
    self.notary.sign(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 245, in sign
    signature = self.compute_signature(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 195, in compute_signature
    hmac = HMAC(self.secret, digestmod=self.digestmod)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 439, in __get__
    value = self._validate(obj, dynamic_default())
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 173, in _secret_default
    self._write_secret_file(secret)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 179, in _write_secret_file
    with io.open(self.secret_file, 'wb') as f:
PermissionError: [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret'

Disarankan agar saya menyertakan output dari python -c "import IPython; print(IPython.sys_info())" , jadi ini dia:

{'commit_hash': 'f534027',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/home/ryan/anaconda3/lib/python3.5/site-packages/IPython',
 'ipython_version': '4.0.0',
 'os_name': 'posix',
 'platform': 'Linux-3.19.0-33-generic-x86_64-with-debian-jessie-sid',
 'sys_executable': '/home/ryan/anaconda3/bin/python',
 'sys_platform': 'linux',
 'sys_version': '3.5.0 |Anaconda 2.4.0 (64-bit)| (default, Oct 19 2015, '
                '21:57:25) \n'
                '[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'}

Seperti yang disebutkan, saya bukan ahli dalam masalah komputasi. Saya harap saya tidak melakukan sesuatu yang bodoh. Saya telah mencoba menghapus dan menginstal ulang anaconda, versi python yang berbeda, memulai ulang komputer, dan saya juga telah mencoba solusi yang ditemukan di sini https://github.com/ipython/ipython/issues/2097 dan di sini https://github.com /ipython/ipython/issues/8294 karena kelihatannya mirip.

Komentar yang paling membantu

Saya memecahkan masalah ini dengan mengubah kepemilikan direktori ~/.local/share/jupyter dari root ke pengguna. Saya tidak tahu mengapa masalah ini terjadi, karena itu tidak terjadi pada sistem saya yang lain, jadi mungkin ini adalah bug dan saya akan meninggalkan ini di sini.

Semua 33 komentar

Saya memecahkan masalah ini dengan mengubah kepemilikan direktori ~/.local/share/jupyter dari root ke pengguna. Saya tidak tahu mengapa masalah ini terjadi, karena itu tidak terjadi pada sistem saya yang lain, jadi mungkin ini adalah bug dan saya akan meninggalkan ini di sini.

Saya baru saja melakukan instalasi baru dan mengalami masalah yang sama.

Perbaikan ini masih berfungsi.

Saya menggunakan "Sudo" sebelum "jupyter notebook --ip 0.0.0.0", dan itu berhasil untuk saya.

@metallikapo ketika saya melakukan hal yang sama, dan jika saya membuka terminal, saya masuk sebagai root. Tidak baik.

Ya, kami tidak menyarankan menjalankan server notebook dengan sudo . Itu juga akan menyebabkan semua kode di buku catatan Anda berjalan sebagai root. Mengubah file/direktori yang relevan untuk dimiliki oleh pengguna Anda, seperti yang ditemukan @rtdew1 , adalah hal yang lebih baik untuk dilakukan. Saya tidak yakin bagaimana situasi ini muncul.

saya menggunakan notebook Sudo jupyter di mac itu juga berfungsi untuk sistem saya.

@metallikapo terima kasih banyak

saya menggunakan notebook Sudo jupyter di mac itu juga berfungsi untuk sistem saya.

@metallikapo terima kasih banyak

Sekali lagi kami tidak menyarankan menjalankan dengan sudo, dan notebook 5.0 akan menolak untuk memulai sebagai root secara default, jadi ini bukan solusi.

Perintah apa yang Anda gunakan? jupyter notebook untuk membuka notebook? Saya memiliki masalah yang sama dengan notebook jupyter juga. Tetapi menggunakan perintah jupyter-notebook malah memecahkan masalah bagi saya.

bagaimana Anda mengubah kepemilikan notebook jupyter?

Lalu apa solusi yang lebih baik? @Carreau

Solusi yang lebih baik adalah memperbaiki izin sehingga Jupyter dapat berjalan di akun pengguna biasa Anda. Sulit untuk memberikan instruksi yang tepat untuk ini, karena ada berbagai hal yang bisa salah dan menyebabkan kesalahan serupa. Tetapi secara umum, Anda ingin melakukan sesuatu seperti ini:

  1. Lihat pesan kesalahan 'Izin ditolak' yang Anda dapatkan, dan lihat file apa yang dirujuk. Jika ini berada di bawah direktori home Anda ( /home/username di Linux, atau /Users/username di Mac), petunjuk ini berlaku. Jika di tempat lain, masalahnya mungkin berbeda.
  2. Buka terminal, dan cd ke folder yang berisi file itu.
  3. Jalankan ls -l untuk melihat semua file di sana. Jika file ada di sana, Anda mungkin akan melihat bahwa pemiliknya adalah root , bukan nama pengguna Anda sendiri. Ini adalah masalah yang paling umum. Jika file tidak ada, mungkin tidak dapat membuatnya - naik level dan coba hal yang sama pada direktori.
  4. Jalankan sudo chown username:username filename untuk mengubah pemilik (dan grup) file menjadi pengguna Anda sendiri. Jika Anda melakukan ini di direktori, gunakan flag -R untuk juga mengubah semua file di dalamnya.

Anda mungkin juga dapat melakukan ini dari pengelola file, tetapi ada banyak yang berbeda, jadi kami tidak akan memberikan instruksi.

(Jika tidak jelas, ganti username dengan nama pengguna Anda sendiri dalam instruksi tersebut)

Saya menjalankan sistem Linux pynq FPGA dan ini menyelesaikan masalah saya dengan sempurna, terima kasih! @takluyver

Hai Tomas,

Setelah saya mengeksekusi kode di notebook Jupyter, saya menemukan yang lain
masalah: IPython dir ~/.ipython bukan lokasi yang dapat ditulis, menggunakan temp
direktori.

Apakah Anda tahu apa yang salah?

Terbaik,

Yu Li
Ilmu dan Teknik Komputer,
Universitas Cina Hongkong,
Shatin, Hongkong

20-11-2017 21:01 GMT+08:00 Thomas Kluyver [email protected] :

(Jika tidak jelas, ganti nama pengguna dengan nama pengguna Anda sendiri di
instruksi tersebut)


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ipython/ipython/issues/8997#issuecomment-345688870 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AbRY_MLFebh-Y8ruW-vIi-e5ZJHy8H4aks5s4XgjgaJpZM4GkQxG
.

Periksa izin ~/.ipython , dan coba sudo chown username:username ~/ipython , periksa juga bahwa:

$ ls -al ~/
drwxr-xr-x    14 <username>  <usergroup>         476 Oct  9 05:30 .ipython

khususnya kolom pertama dimulai dengan drwx jika tidak, Anda mungkin perlu sudo chmod o+w ~/.ipython . Dimana o+w sarana menambahkan izin ritus W untuk O wner.

Lebih baik chown folder itu dimiliki oleh pengguna Anda. Menggunakan chmod 777 berarti setiap pengguna dapat membaca atau menulisnya. Kami menyimpan beberapa informasi rahasia di sana, seperti database yang digunakan untuk melacak buku catatan tepercaya.

perintah ini bekerja untuk saya:
cd ~ && sudo chown username:username .local/share/
ingat untuk mengganti nama pengguna dengan nama pengguna Anda sendiri

@liwg06
Ini adalah pendekatan yang benar. Terima kasih!

cd ~ && sudo chown username:username .local/share/

NAMUN,
ini tidak cukup bagi saya. Saya harus melakukan kembali hingga .local.

Dalam kasus Fedora Anda mungkin juga ingin melakukan:
sudo chown -R user:user /run/user/1000/jupyter/

Solusi Debian yang cocok untuk saya:
Di folder /run/user/1000/jupyter/:
chmod -R 0755 pengguna:pengguna

  • Hanya memberikan izin baca tidak memperbaiki kesalahan izin saya.

Saya mengalami masalah yang sama dan daripada yang saya temukan bahwa ketika saya menjalankan pip3 install jupyter perintah itu menginstal jupyter di direktori saat ini yang merupakan direktori tingkat root, Akan menjadi buruk jika saya mengubah pemilik kapal direktori itu menjadi pengguna normal sebagai dir itu untuk root, saya baru saja menghapus jupyter dan menginstalnya kembali di direktori home saya dan semuanya bekerja dengan baik untuk saya

Saya pengguna win10, dan saya mendapatkan kesalahan ini terlepas dari kenyataan bahwa saya sudah menjadi pemilik direktori tersebut.

jadi tidak yakin apakah ini akan menyelesaikan masalah untuk semua orang. Saya memiliki kesalahan yang sama dan tidak ada solusi yang berhasil untuk saya. Saya memeriksa jalur ke tempat jupyter disimpan menggunakan juypter --path.
akan ada daftar jalur yang diklasifikasikan berdasarkan konfigurasi, data, dan runtime. Saya cd ke jalur di bawah konfigurasi,
tampak seperti ini
c:\users\dn.user\appdata\local\programs\python\python37\etc\jupyter
setelah mengubah direktori ke sini
Saya menjalankan jupyter lagi dan tidak ada kesalahan. semoga ini membantu seseorang

Bagaimana dengan pengguna Windows??

Mungkin saya harus mengklarifikasi lebih baik. Saya pengguna windows dan saya menggunakan baris perintah normal saya

Maksud saya, saya menggunakan AWS WorkSpace dan saya menghadapi beberapa masalah lokasi file yang aneh karena struktur dalam ruang kerja AWS!! Aku menyadarinya nanti!! Tetapi bisakah Anda memberikan solusi dan jalur relatif untuk menyelesaikan masalah "izin ditolak" untuk pembuatan file dan menyimpan file !!

Metode Mazior membantu saya memperbaikinya. Terima kasih!

Sama seperti (XuuLiu berkomentar pada 29 Apr 2017): dengan Ubuntu 18.04 LS,
menggunakan perintah jupyter-notebook sebagai gantinya memecahkan masalah bagi saya.

Tak satu pun di atas menyelesaikannya, tapi saya chown pengguna semua sub /.ipynb-checkpoints dan itu berhasil.

Untuk pengguna windows:

Anda perlu menjalankan Anaconda prompt Run As Administrator untuk memungkinkan Anda membuat dan memodifikasi.

Ingatan saya penuh. Saya memindahkan beberapa barang dan sekarang berfungsi dengan baik.

  • Masalahnya mirip dengan saya. Ketika saya menggunakan perintah jupyter notebook untuk memulai server, itu bisa berjalan.
ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
[I 05:32:07.950 NotebookApp] Loading IPython parallel extension
[I 05:32:07.952 NotebookApp] Serving notebooks from local directory: /home/ubuntu/ssl
[I 05:32:07.952 NotebookApp] The Jupyter Notebook is running at:
[I 05:32:07.952 NotebookApp] https://(ip-172-31-48-131 or 127.0.0.1):8888/
[I 05:32:07.952 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
  • Tapi saya mengakses server melalui URL localhost di Browser Chrome, lalu terjadi kesalahan.
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/usr/local/lib/python3.6/dist-packages/tornado/platform/asyncio.py", line 122, in _handle_events
    handler_func(fileobj, events)
  File "/usr/local/lib/python3.6/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 262, in accept_handler
    callback(connection, address)
  File "/usr/local/lib/python3.6/dist-packages/tornado/tcpserver.py", line 263, in _handle_connection
    do_handshake_on_connect=False)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
    context = ssl_options_to_context(ssl_options)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 540, in ssl_options_to_context
    context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied
  • Info sistem saya
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
  • Solusi Saya: Menggunakan perintah sudo jupyter notebook --allow-root alih-alih perintah jupyter notebook untuk memulai server. (Saya tidak tahu mengapa itu berhasil, tetapi itu benar-benar berhasil untuk saya.)
# ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
 ubuntu@ip-172-31-48-131:~/ssl$ sudo jupyter notebook --allow-root
Apakah halaman ini membantu?
0 / 5 - 0 peringkat