• # pyenv

    Posté par (site web personnel) . En réponse au message Autre version de python3 dans un virtualenv. Évalué à 8. Dernière modification le 04 décembre 2025 à 21:48.

    La magie est pyenv : ça compile la version que tu veux de python et la garde dans ~/.pyenv/versions/3.xx. Ensuite les venv font des liens de l’exécutable python3 vers celui qu'on veut.

    Je tape de mémoire; il y a peut-être un ou deux chemins à adapter.
    À faire dans la home:

    sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev libreadline-dev libsqlite3-dev liblzma-dev libbz2-dev
    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    ~/.pyenv/bin/pyenv install -v 3.10.6
    

    À partir de là tu as un python 3.10.6 dans ~/.pyenv/version/3.10.6.

    Ensuite dans ton projet :

    cd /chemin/vers/mon/projet
    ~/.pyenv/versions/3.10.6/bin/python3 -m pip venv venv
    

    Maintenant le fichier /chemin/vers/mon/projet/venv/bin/python3 est un lien vers le python 3.10.6 fraîchement compilé.

    Et enfin tu installes :

    cd /chemin/vers/mon/projet/venv/bin/python3
    ./python3 -m pip install --upgrade pip
    ./pip3 install -r /chemin/vers/mon/projet/requirements.txt

    Maintenant ton script contient :

    #!venv/bin/python3
    import ...
    

    et les imports se feront à partir de venv/lib/python3.13/site-packages.

    CONSEIL: ne source pas le venv. Utilise un shebang dans le script. Moins de suprises en cas d'oubli.

    CONSEIL : je jamais. JAMAIS faire de pip install dans le python du système. Sinon tu passes du python c'est bien à l'enfer.