python / python/devguide

Feature: Add guide to install system dependencies with pixi

Ouverte
#1,669 4 commentaires 6 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

topic-building python type-feature
Langage dominant
Python
Étoiles
2.1k
Forks
1k
Merge moyen
2 j 12 h
PR mergées (30 j)
12

Description

Describe the enhancement or feature you would like

I've stopped using brew on my macOS and I'm instead using pixi whenever I need system-level dependencies. This works very well in practice even for building CPython and I can do things like pixi run configure and it automatically sets up all of the system dependencies and runs configure. Doing that requires setting some environment variables here and there, but I've done that in a pixi.toml and it's all automated. It looks somewhat like this:

[project]
name = "cpython-dev"
channels = ["conda-forge"]
platforms = ["osx-arm64"]

[dependencies]
gdbm = "*"
libmpdec-devel = "*"
openssl = "3.*"
pkg-config = "*"
tk = "*"
xz = "*"
zstd = "*"
zlib = "*"

[tasks.configure]
cmd = "./configure --with-openssl=$CONDA_PREFIX"

[tasks.configure.env]
PKG_CONFIG_PATH = "$CONDA_PREFIX/lib/pkgconfig"
GDBM_CFLAGS = "-I$CONDA_PREFIX/include"
GDBM_LIBS = "-L$CONDA_PREFIX/lib -lgdbm"
TCLTK_CFLAGS = "$(pkg-config --cflags tcl tk)"
# tcl.pc and tk.pc files contain stub libraries, but those do not extist
# in the conda package
TCLTK_LIBS = "$(pkg-config --libs tcl tk | sed 's/-l[^ ]*stub[^ ]*//g')"
LDFLAGS = "-Wl,-rpath,$CONDA_PREFIX/lib"

It's a bit too much to propose adding this to the CPython repo, at least for now. However, pointing to this as a way to install system-level dependencies in the devguide doesn't sounds like a bad idea to me.

Thoughts? Is there an appetite for this? If so, I can start drafting a PR.

Describe alternatives you have considered

No response

Additional context

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par les instructions existantes du devguide concernant l’installation des dépendances au niveau du système et comparez-les au workflow pixi.toml proposé. Ajoutez une option concise basée sur pixi ou un lien couvrant les dépendances et la configuration de l’environnement présentées dans l’issue, puis vérifiez que les instructions de configuration de l’environnement de développement sont complètes et compréhensibles.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
documentation
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
Une demi-journée
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.