Commit 07c2b34
committed
Auto-discover libpython via python3 sysconfig
The Python-in-Lean bridge previously only tried (a) libpython already
loaded into the host process, (b) LEANPY_LIBPYTHON, and (c) common
sonames via the dyld search path. On a typical pyenv / uv / framework
install, none of those find anything, so opening Main.lean in VS Code
and #eval'ing a function that calls into the bridge would fail with
'could not load libpython'.
Add step (3.5): popen("python3 -c '<sysconfig snippet>'") and dlopen
the printed path. Falls through to the soname list if python3 isn't
on PATH or returns nothing useful.
This means the typed-numpy example now works in #eval inside VS Code
with no env var fiddling, as long as python3 on PATH has numpy
importable.1 parent 5fb57a5 commit 07c2b34
3 files changed
Lines changed: 54 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
266 | 294 | | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
271 | 299 | | |
272 | 300 | | |
273 | 301 | | |
274 | 302 | | |
275 | | - | |
| 303 | + | |
276 | 304 | | |
277 | 305 | | |
278 | 306 | | |
279 | 307 | | |
280 | 308 | | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
281 | 317 | | |
282 | 318 | | |
283 | 319 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
32 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
33 | 40 | | |
34 | 41 | | |
35 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | 9 | | |
0 commit comments