Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Python 3.15 from conda-forge: "Could not find Python library" because libpython is not installed

Chiusa
#838 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Una pull request collegata è già stata integrata.

  • #839 di @cjdoris — integrata

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
julia, python
Ambito
backend

Direzione di ricerca

Start by reading CondaPkg environment handling and PythonCall's Python library discovery, especially the find_libpython.py --list-all behavior described here; reproduce with Python 3.15 and the libpython dependency. Check compatibility with Julia 1.10 and 1.12, where the libstdcxx cap makes that dependency unsolvable. Done when PythonCall loads in supported Python 3.15 environments without making older Julia environments unsolvable.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

With CondaPkg's default environment, PythonCall 0.9.36 fails to load once the solver picks conda-forge's python 3.15.0 (published 2026-10-09):

ERROR: InitError: Could not find Python library for Python executable ".../.CondaPkg/.pixi/envs/default/bin/python".

Cause. Starting with 3.15, conda-forge's python package neither contains nor depends on the shared library; it moved to a separate libpython package (conda-forge/python-feedstock#843). The 3.11 to 3.14 builds still depend on libpython exactly, so they are unaffected. In a 3.15 environment lib/ has no libpython* file at all, so find_libpython.py --list-all prints nothing, although sysconfig still reports LDLIBRARY = libpython3.15.so.

Reproduction (Linux x86_64, Julia 1.13.1). A project whose CondaPkg.toml is

[deps]
python = ">=3.15"

fails on using PythonCall with the error above. Adding

libpython = ""

to the same file fixes it: pyimport("sys").version reports 3.15.0 | packaged by conda-forge.

Possible fix. PythonCall could request libpython itself, but not unconditionally. Every conda-forge libpython build requires libstdcxx >=15, and CondaPkg caps libstdcxx below 15 on Julia versions that bundle an older libstdc++ (seen with 1.10 and 1.12), so an explicit libpython makes the environment unsolvable there. Those Julia versions cannot install python 3.15 anyway, and the older python they get still ships the library. conda-forge also publishes libpython only for 3.11 and newer. In the meantime, SymbolicRegression.jl pins python = "<3.15" in its test environment.

This showed up in SymbolicRegression.jl CI (test group integration/ext/pythoncall).

Lingua principale
Julia
Stelle
1.1k
Fork
89
Merge medio
23h 52m
PR unite (30g)
4

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaPy/PythonCall.jl

Tutte le issue di JuliaPy/PythonCall.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.