DSH Plugins
返回列表
🖥️

dsh-python-tempfile-shim

客户端 更新于 2026.08.25

在终端中运行以下命令:

dsh plugin install AngelosZou/dsh-python-tempfile-shim

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在终端中克隆 https://github.com/AngelosZou/dsh-python-tempfile-shim 仓库到本地,然后在本地目录执行 dsh plugin install AngelosZou/dsh-python-tempfile-shim 即可安装该插件。

插件介绍

在使用 DeepSeek Harness 的 Windows 沙箱(workspace-write 模式)运行 Python 时,CPython 以 0o700 权限创建临时目录,而沙箱的 WRITE_RESTRICTED 令牌恰恰将该用户身份排除在访问列表之外,导致 pytest 的 tmp_path、tempfile.mkdtemp 等调用直接抛出 PermissionError(WinError 5)。dsh-python-tempfile-shim 正是为填补这一上游修复落地前的空白而生。

插件在 shell 执行器的 resolve 层注入 PYTHONPATH,使所有受限命令自动挂载一个轻量的 sitecustomize.py 垫片。该垫片让 os.mkdir 忽略 mode 参数,新目录不再携带 owner-only DACL,而是继承父目录下沙箱已授权的写 ACE。效果覆盖 python、pytest、pip、tox、nox 及所有子进程,无需额外配置或环境变量,且完全不触碰沙箱令牌与策略边界。

它面向在 Windows 上使用 DSH 沙箱做 Python 开发或测试的用户。请注意这是一个临时方案——一旦 DSH 上游发布正式修复,建议卸载此插件,因为 0o700 在非沙箱场景下是 CPython 的隐私加固机制,不应被绕过。

使用场景

  • 在 DSH Windows workspace-write 沙箱中运行 pytest tmp_path 测试遇到 PermissionError
  • Python 脚本在受限模式下调用 tempfile.mkdtemp 或 os.makedirs(mode=0o700) 失败
  • 沙箱内运行 tox 或 nox 测试套件时子进程无法读写临时目录

适合人员

  • 在 Windows 上使用 DSH 沙箱执行 Python 工作负载的开发者
  • 依赖 pytest tmp_path 或 TemporaryDirectory 做集成测试的工程师
  • 在 workspace-write 受限环境中调试 Python 文件权限问题的用户