dsh-python-tempfile-shim
在终端中运行以下命令:
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 文件权限问题的用户