Python 3.15 from conda-forge: "Could not find Python library" because libpython is not installed
Les mainteneurs répondent en général sous 1 jour
Une pull request liée a déjà été fusionnée.
- #839 par @cjdoris — fusionnée
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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).
- Langage dominant
- Julia
- Étoiles
- 1.1k
- Forks
- 89
- Merge moyen
- 23 h 52 min
- PR mergées (30 j)
- 4
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JuliaPy/PythonCall.jl
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
JuliaPy/PythonCall.jl#828 · 7 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
JuliaPy/PythonCall.jl#809 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Locking julia dependenciesOuverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
JuliaPy/PythonCall.jl#805 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
JuliaPy/PythonCall.jl#796 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
JuliaPy/PythonCall.jl#790 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de JuliaPy/PythonCall.jl
Issues similaires
-
Difficulté 2/5 Moins d'une heure Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
CliMA/ClimaAtmos.jl#4891 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
tagbot-manual
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
tshort/StaticCompiler.jl#191 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
SciML/SciMLSensitivity.jl#1703 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
JuliaGPU/GPUCompiler.jl#1008 ·
Les mainteneurs répondent en général sous 1 jour