Windows 沙箱里 scipy.linalg / np.linalg 一调用就崩(0xc06d007f),但系统 shell 里正常——有人遇到过或知道怎么豁免吗? #7152
Replies: 1 comment
|
先说清哪些是查证过的、哪些只能算判断。 这不是文件权限问题,也不是「命令允许列表」能解决的问题。 Windows 沙箱( 但同一份文档也记录了一类确定存在的失败模式:受限令牌会让原生 DLL 初始化挂掉。文档原文有两处:
也就是说「受限令牌 → 某个 DLL 在初始化阶段失败」这条路子是官方文档承认的既有类别。 但要诚实说明两点:
先做一件事:确认 这一点很关键。 所以逻辑上只有两种可能:
请先确认调用结果里的 关于你试的「用 受限令牌不是 想请你提供的诊断信息(按性价比排序)
绕过路径(按代价从低到高)
关于你问的第 2 点:如果你确认 如果这条思路帮你把范围缩下来,可以把它标为 answer,方便后面遇到同类 |
Uh oh!
There was an error while loading. Please reload this page.
我在 DSH v0.1.5-rc2(Windows 版,Web GUI)里用
pwsh工具跑 Python 时,碰到一个问题,发出来看看有没有人踩过同样的坑、或知道怎么绕开。现象
在 DSH 内执行:
D:\miniforge3\envs\py313\python.exe -c "import faulthandler; faulthandler.enable(); import numpy as np; from scipy.linalg import lu; print(lu(np.array([[1.,2.],[3.,4.]])))"直接崩:
但完全一样的解释器、完全一样的命令,在 DSH 之外的系统
cmd/ PowerShell 里跑,正常返回(P, L, U)。哪些会崩(都走 OpenBLAS 的 LAPACK 初始化)
np.linalg.det / inv / solve / svd / qrscipy.linalg.lu / qr哪些在 DSH 里反而正常(不触发 OpenBLAS LAPACK 初始化)
np.array、np.fft、np.dot、np.matmul(小矩阵走轻量 BLAS 路径)np.linalg.eig、scipy.linalg.solve(走参考实现lapack_lite)scipy.special、scipy.sparse我试过但都没用的
OPENBLAS_NUM_THREADS=1/OPENBLAS_MAIN_FREE=1/OMP_NUM_THREADS=1pwsh加danger-full-access提权(排除文件权限沙箱).bat让cmd.exe拉起 python 孙进程(限制随进程树继承,照样崩)环境
Windows x86_64,CPython 3.13.15(conda-forge),numpy 2.5.3 / scipy 1.18.1,OpenBLAS 后端。
想请教大家
--no-sandbox的开关)?如果官方想知道更精确的根因(OpenBLAS 到底踩了哪条 Windows API),告诉我抓什么诊断信息,我可以提供。
谢谢!
All reactions