Dans cet article, nous examinons différentes façons d'installer du code dans votre environnement virtuel avec pip.
Ceux-ci vont gagner en complexité, mais ne vous inquiétez pas, je suis là pour vous à chaque étape du processus.tapote ton dos
Assez parlé ! Commençons par quelque chose de simple.
Supposons la situation suivante : vous venez d'extraire un référentiel et souhaitez installer la configuration requise.
Cela peut facilement être fait en utilisant la commande suivante... bien sûr après avoir créé un environnement virtuel :
$ python -m venv (name of virtual environment) $ source (name of virtual environment)/bin/activate $ pip install .
Si vous vous interrogez sur la commande d'installation et l'absence de fichier conditions.txt, j'ai une mauvaise nouvelle pour vous. Nous sommes en 2024 et vous ne devriez plus utiliser de fichier Requirements.txt.
Ceci n'est bien sûr que ma propre opinion, mais tous les référentiels avec lesquels je travaille ont un pyproject.toml et je vous recommande fortement d'en utiliser également un dans chacun de vos projets. Une exception viable pourrait être les projets sandbox et les petits scripts.
Le « pourquoi » serait déplacé ici, mais permettez-moi de vous donner un aperçu. Non seulement cela vous permet de définir vous-même vos besoins. Vous pouvez également définir des dépendances facultatives que l'utilisateur peut installer si nécessaire.
Ceci est particulièrement utile pour les outils de développement dont vous ne voulez pas dans l'application productive, comme tester des bibliothèques ou des formateurs.
Mais ce n'est que le début de la liste des fonctionnalités. Ils constituent également un espace pour les métadonnées et permettent des points d'entrée personnalisés à votre application.
Voici à nouveau la commande d'installation :
$ pip install .
Assurez-vous que vous êtes dans le dossier où se trouve le pyproject.toml.
Voici un conseil de pro, utilisez la commande suivante si vous avez l'intention de travailler sur le référentiel que vous installez
$ pip install -e .
Cela effectue une installation modifiable également connue sous le nom de « Mode développement » qui vous permet de tester de manière itérative vos modifications de code sans avoir besoin de réinstaller votre projet.
Qu'est-ce que cela signifie ?
Vous est-il déjà arrivé de modifier le code d'un module à partir duquel vous importez, mais les modifications ne semblent pas prendre effet ?
Essayez les installations modifiables !
Question rapide : Que faites-vous si vous souhaitez installer la version d'une branche spécifique au lieu de la branche par défaut ?
La réponse est évidente
$ git checkout (branch name)
et répétez les étapes ci-dessus ! N'est-ce pas ?
Espèce d'imbécile, tu viens d'activer ma carte piège !
Vous voyez, depuis la version 2.23, il y a un petit nouveau en ville qui permet un changement de branche plus intuitif et son nom est git switch.
git checkout est obsolète depuis.
Alors ne vous exposez pas devant vos collègues en utilisant des outils obsolètes. Au lieu de cela, déposez négligemment un commutateur git la prochaine fois que vous partagerez votre écran pour faire savoir à tout le monde que vous êtes sérieux.
Préparez-vous !
Jusqu’à présent, tout n’était qu’un jeu d’enfant. Il est maintenant temps d'utiliser des pips de grand garçon.
Vous voyez, tout le monde peut installer les packages disponibles dans un référentiel de packages, mais savoir seulement comment installer à partir de là signifie que tout l'or des référentiels privés vous restera inaccessible.
Il est également utile de tester votre propre code avant de le transformer en package.
Si jamais vous vous trouvez dans une telle situation, utilisez cette commande :
$ pip install git+ssh://git@(your provider)/(owner)/(repo name).git
Voici un exemple sans les espaces réservés, cela pourrait faciliter la compréhension.
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git
Fait amusant : tout ce qui suit le '://' est presque identique à la commande ssh générée par git. Mais remarquez qu'au lieu des deux points utilisés pour séparer « github.com » et le propriétaire « pandas-dev », une barre oblique doit être remplacée.
Et si vous souhaitez installer depuis une branche... ou toute autre référence d'ailleurs ?
Facile ! Ajoutez simplement un @(ref) à la fin de la commande. Donc ça peut ressembler à quelque chose comme
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x (branch) $ pip install git+ssh://git@github.com/pandas-dev/pandas.git@v2.2.2 (tag)
Mais que se passe-t-il s'il ne suffit pas d'installer des packages à partir de la ligne de commande ? Et si votre pipeline de build devait également être installé à partir d'un référentiel privé ?
J'espère que vous conviendrez qu'il est hors de question d'ajouter des instructions d'installation pip individuelles à votre pipeline.
Alors laissez-moi vous montrer quoi ajouter à la section dépendances du pyproject.toml. Vous verrez, qu'elle ressemble beaucoup à la commande précédente :
"pandas@git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x",
Avec cela ajouté, réexécutez pip install -e ..
Félicitations ! Vous venez d'installer une version obsolète de pandas dans votre environnement. Vous voudrez peut-être répéter cela avec le package dont vous avez besoin.
Puisque vous êtes resté avec moi jusqu'à présent, je vais vous proposer une recommandation d'outil bonus.
Ces derniers mois, j'ai utilisé uv, qui remplace instantanément pip (parmi d'autres outils souvent utilisés dans l'écosystème python) écrit en Rust.
Le principal argument de vente est qu'il accélère considérablement la création d'environnements virtuels et l'installation de packages. Surtout si vous recréez des environnements virtuels, car cela utilise la mise en cache. On parle d'être 10 fois plus rapide... voire 100 fois plus rapide si le cache est chaud.
La liste des avantages est bien plus longue que cela, mais cela fera également l'objet d'un autre article. Alors, essayez-le pour le moment et remerciez-moi plus tard.
Terminons cela.
Ce sont toutes les méthodes que j'ai utilisées au cours de mon travail en ce qui concerne l'interaction entre git et pip. Il existe peut-être d'autres façons d'installer des éléments, mais cela devrait couvrir 99 % des cas d'utilisation.
Ai-je oublié votre astuce de ligne de commande préférée ? Alors partagez-le dans les commentaires.
J'espère que vous avez appris quelque chose de nouveau avec cet article et si vous êtes intéressé par des articles plus techniques sur le développement de logiciels, envisagez de le suivre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!