pywintypes.error: (50, 'GetFileSecurity', 'The request is not supported.') 在网络驱动器上使用 Jupyter Not



我目前正在尝试在网络驱动器上使用miniconda + jupyter(与pip一起安装(的组合,但出现以下错误:

pywintypes.error: (50, 'GetFileSecurity', '请求不受支持。

我目前在一家公司工作,所以我们在访问权限方面有一些限制。不幸的是,我只能在网络驱动器上尝试jupyter,对本地硬盘驱动器的更改需要我没有的管理员权限。

完整错误输出:

Traceback (most recent call last):
File "c:programsminiconda3_64libsite-packagestornadoweb.py", line 1699, in _execute
result = await result
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 742, in run
yielded = self.gen.throw(*exc_info)  # type: ignore
File "c:programsminiconda3_64libsite-packagesnotebookservicessessionshandlers.py", line 72, in post
type=mtype))
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 735, in run
value = future.result()
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 742, in run
yielded = self.gen.throw(*exc_info)  # type: ignore
File "c:programsminiconda3_64libsite-packagesnotebookservicessessionssessionmanager.py", line 88, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 735, in run
value = future.result()
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 742, in run
yielded = self.gen.throw(*exc_info)  # type: ignore
File "c:programsminiconda3_64libsite-packagesnotebookservicessessionssessionmanager.py", line 101, in start_kernel_for_session
self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 735, in run
value = future.result()
File "c:programsminiconda3_64libsite-packagestornadogen.py", line 209, in wrapper
yielded = next(result)
File "c:programsminiconda3_64libsite-packagesnotebookserviceskernelskernelmanager.py", line 168, in start_kernel
super(MappingKernelManager, self).start_kernel(**kwargs)
File "c:programsminiconda3_64libsite-packagesjupyter_clientmultikernelmanager.py", line 110, in start_kernel
km.start_kernel(**kwargs)
File "c:programsminiconda3_64libsite-packagesjupyter_clientmanager.py", line 240, in start_kernel
self.write_connection_file()
File "c:programsminiconda3_64libsite-packagesjupyter_clientconnect.py", line 547, in write_connection_file
kernel_name=self.kernel_name
File "c:programsminiconda3_64libsite-packagesjupyter_clientconnect.py", line 212, in write_connection_file
with secure_write(fname) as f:
File "c:programsminiconda3_64libcontextlib.py", line 82, in __enter__
return next(self.gen)
File "c:programsminiconda3_64libsite-packagesjupyter_clientconnect.py", line 100, in secure_write
win32_restrict_file_to_user(fname)
File "c:programsminiconda3_64libsite-packagesjupyter_clientconnect.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.')

对这种类型的错误有任何想法或经验吗?

对于任何遇到此问题的人来说,这似乎是由于更新了 jupyter 笔记本或任何其他可以更新它的软件包。

解决此问题的步骤如下:

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

您遇到的问题可能是由于浏览器的访问权限以及 jupyter 实验室运行,就像我刚刚痛苦地发现的那样。

我的原始答案可以在这里找到:https://github.com/jupyter/jupyter_client/issues/481

但这是我给其他想要继续使用最新Jupyter实验室/笔记本版本的人的故事:

(我运行预装Jupyter的Anconda(:

1-使用此命令检查环境路径时:jupyter --path我得到了两个漫游位置,一个用于运行时,一个用于数据!这是因为我使用公司笔记本电脑,并且 Windows 设置为将用户数据文件存储在网络上的漫游位置!

(base) C:>jupyter --paths
config:
C:Usersuser_x.jupyter
C:ProgramDataAnaconda3etcjupyter
C:ProgramDatajupyter
data:
\A-FILEDATA-PProfileuse_xAppDataRoamingjupyter
C:ProgramDataAnaconda3sharejupyter
C:ProgramDatajupyter
runtime:
\A-FILEDATA-PProfileuse_xAppDataRoamingjupyterruntime
(base) C:>

2-所以,我尝试通过添加来修改C:\Users\user_xxx.jupyter\jupyter_notebook_config.pyJUPYTER_RUNTIME_DIR = 'C:Usersuser_xAppDataRoamingjupyterruntime'但它没有用!

2-但是,这里需要注意的是:我注意到jupyter实验室命令在可移动USB硬盘上触发了"独立"Chrome! 在公司Windows设置下,它没有任何权利写入笔记本电脑上的其他文件夹位置,因此安全错误!

3-解决方案是在我的USB磁盘上设置两个文件夹,其中可以找到独立的Chrome,并将环境变量设置为指向这些位置,如下所示:

set JUPYTER_RUNTIME_DIR=D:jupyterruntime
set JUPYTER_DATA_DIR=D:jupyter

4-唯一的问题是,您必须在每个新会话开始时执行这两个命令,因为它们不会持续存在,例如当您重新启动Jupyter实验室时! 正如@Shongololo指出的那样,您只能从命令行运行其他程序,例如Spyder,只能让它读取正确的设置!

如何永久解决这个问题还有待探索。

最新更新