pywintypes.error: (50, 'GetFileSecurity', 'Запрос не поддерживается.') при использовании Jupyter Notebook на сетевом диске

В настоящее время я пытаюсь использовать комбинацию miniconda + jupyter (установленную с помощью pip) на сетевом диске, и я получаю следующую ошибку:

pywintypes.error: (50, 'GetFileSecurity', 'Запрос не поддерживается.')

В настоящее время я работаю в корпоративной системе, поэтому мы работаем с некоторыми ограничениями в отношении прав доступа. К сожалению, я могу попробовать jupyter только на сетевых дисках, изменения на локальном жестком диске требуют прав администратора, которых у меня нет.

Полный вывод ошибок:

Traceback (most recent call last):
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\web.py", line 1699, in _execute
   result = await result
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
   yielded = self.gen.throw(*exc_info)  # type: ignore
 File "c:\programs\miniconda3_64\lib\site-packages\notebook\services\sessions\handlers.py", line 72, in post
   type=mtype))
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
   value = future.result()
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
   yielded = self.gen.throw(*exc_info)  # type: ignore
 File "c:\programs\miniconda3_64\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 88, in create_session
   kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
   value = future.result()
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
   yielded = self.gen.throw(*exc_info)  # type: ignore
 File "c:\programs\miniconda3_64\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 101, in start_kernel_for_session
   self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
   value = future.result()
 File "c:\programs\miniconda3_64\lib\site-packages\tornado\gen.py", line 209, in wrapper
   yielded = next(result)
 File "c:\programs\miniconda3_64\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 168, in start_kernel
   super(MappingKernelManager, self).start_kernel(**kwargs)
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\multikernelmanager.py", line 110, in start_kernel
   km.start_kernel(**kwargs)
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\manager.py", line 240, in start_kernel
   self.write_connection_file()
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\connect.py", line 547, in write_connection_file
   kernel_name=self.kernel_name
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\connect.py", line 212, in write_connection_file
   with secure_write(fname) as f:
 File "c:\programs\miniconda3_64\lib\contextlib.py", line 82, in __enter__
   return next(self.gen)
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\connect.py", line 100, in secure_write
   win32_restrict_file_to_user(fname)
 File "c:\programs\miniconda3_64\lib\site-packages\jupyter_client\connect.py", line 61, in win32_restrict_file_to_user
   sd = win32security.GetFileSecurity(fname, win32security.DACL_SECURITY_INFORMATION)
ywintypes.error: (50, 'GetFileSecurity', 'The request is not supported.')

Есть идеи или опыт работы с этим типом ошибок?


person nvrslnc    schedule 24.09.2019    source источник


Ответы (2)


Для всех, у кого есть эта проблема, похоже, это связано с обновлением ноутбука jupyter или любого другого пакета, который может его обновить.

Шаги по устранению проблемы следующие:

pip install jupyter pip install jupyter-client==5.3.1 python -m ipykernel install --user

person Edgar Hernandez    schedule 30.09.2019
comment
Спасибо за решение - сработало! Однако странно то, что у клиента jupyter была более высокая версия (5.3.4), и нам пришлось понизить ее до версии 5.3.1, которая сработала. - person nvrslnc; 22.10.2019
comment
Следует отметить, что это пропускает проверки безопасности, которые были добавлены, что означает, что ваши файлы подключения могут быть открыты для любого пользователя в системе. - person Pyrce; 04.02.2020

Проблема может быть связана с правами доступа для браузера, а также для запуска jupyter lab, как я только что обнаружил.

Мой исходный ответ можно найти здесь: https://github.com/jupyter/jupyter_client/issues/481

Но вот моя история для тех, кто хочет и дальше использовать последнюю версию Jupyter lab / Notebook:

(Я запускаю Anconda, которая поставляется с предустановленной Jupyter):

1- При проверке путей к среде с помощью этой команды: jupyter --paths я получаю два перемещаемых местоположения: одно для времени выполнения, другое для данных! Это потому, что я использую корпоративный ноутбук, а Windows настроена для хранения файлов пользовательских данных в перемещаемом месте в сети!

(base) C:\>jupyter --paths
config:
    C:\Users\user_x\.jupyter
    C:\ProgramData\Anaconda3\etc\jupyter
    C:\ProgramData\jupyter
data:
    \\A-FILEDATA-P\Profile\use_x\AppData\Roaming\jupyter
    C:\ProgramData\Anaconda3\share\jupyter
    C:\ProgramData\jupyter
runtime:
    \\A-FILEDATA-P\Profile\use_x\AppData\Roaming\jupyter\runtime

(base) C:\>

2- Итак, я попытался изменить C: \ Users \ user_xxx.jupyter \ jupyter_notebook_config.py, добавив JUPYTER_RUNTIME_DIR = 'C:\Users\user_x\AppData\Roaming\jupyter\runtime', но это не сработало!

2- Тем не менее, большое примечание: я заметил, что команда jupyter lab запускает "автономный" Chrome, который у меня есть на съемном жестком диске USB! который при корпоративной установке Windows не имеет прав на запись в другую папку на ноутбуке, поэтому возникает ошибка безопасности!

3- Решение заключалось в том, чтобы настроить две папки на моем USB-диске, где находится автономный Chrome, и установить переменные среды так, чтобы они указывали на такие места, как это:

set JUPYTER_RUNTIME_DIR=D:\jupyter\runtime
set JUPYTER_DATA_DIR=D:\jupyter

4- Единственная загвоздка в том, что вам нужно выполнять эти две команды в начале каждого нового сеанса, поскольку они не сохраняются, например, при перезапуске лаборатории Jupyter! и, как указал @Shongololo, вы можете запускать другие программы, такие как Spyder, из командной строки только для того, чтобы он прочитал правильные настройки!

Остается выяснить, как эту проблему можно решить окончательно.

person Sal    schedule 15.02.2020