-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
🐛 Bug
Running Scipy code inside a Pyodide venv yields to somme Error: Dynamic linking error: cannot resolve symbol s_cmp. Running inside a browser works fine and I am pretty sure running a .js with node explicitly does work as well since I have been doing it for a while in https://github.com/lesteve/scipy-tests-pyodide. Maybe the issue is with the Pyodide venv python nodejs wrapper?
To Reproduce
pyodide venv .pyodide-venv
source .pyodide-venv/bin/activate
pip install scipy
python test.py
Where test.py has the following content:
import numpy as np
from scipy.sparse.linalg import svds
rng = np.random.default_rng(0)
A = rng.random((10, 10))
res = svds(A, k=3, which='LM', random_state=0)Stack (most recent call first):
File "/home/lesteve/test/.pyodide-venv/lib/python3.12/site-packages/scipy/sparse/linalg/_eigen/arpack/arpack.py", line 537 in iterate
File "/home/lesteve/test/.pyodide-venv/lib/python3.12/site-packages/scipy/sparse/linalg/_eigen/arpack/arpack.py", line 1700 in eigsh
File "/home/lesteve/test/.pyodide-venv/lib/python3.12/site-packages/scipy/sparse/linalg/_eigen/_svds.py", line 525 in svds
File "/home/lesteve/test/test.py", line 8 in <module>
Error: Dynamic linking error: cannot resolve symbol s_cmp
at stubs.<computed> (/home/lesteve/test/.pyodide-xbuildenv-0.26.0/0.26.0/xbuildenv/pyodide-root/dist/pyodide.asm.js:10:148862)
at wasm://wasm/000fb3c2:wasm-function[207]:0x173c0
at wasm://wasm/000fb3c2:wasm-function[180]:0x4472
at wasm://wasm/0003e6d6:wasm-function[107]:0xbfa0
at _PyEM_TrampolineCall_JS (/home/lesteve/test/.pyodide-xbuildenv-0.26.0/0.26.0/xbuildenv/pyodide-root/dist/pyodide.asm.js:10:125866)
at wasm://wasm/0267d6e2:wasm-function[1134]:0x1c2db7
at wasm://wasm/0267d6e2:wasm-function[1143]:0x1c35c8
at wasm://wasm/0267d6e2:wasm-function[3408]:0x2a05c2
at wasm://wasm/0267d6e2:wasm-function[3406]:0x2960a0
at wasm://wasm/0267d6e2:wasm-function[4211]:0x30a9c5
Edit: for compleness as I was mentioning, the same code run with node directly node test.js does work:
const { opendir } = require('node:fs/promises');
const { loadPyodide } = require("pyodide");
async function main() {
let pyodide = await loadPyodide();
await pyodide.loadPackage(["scipy"]);
await pyodide.runPythonAsync(`
import numpy as np
from scipy.sparse.linalg import svds
rng = np.random.default_rng(0)
A = rng.random((10, 10))
res = svds(A, k=3, which='LM', random_state=0)
`);
}
main();Expected behavior
No error
Environment
- Pyodide Version: 0.26.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working