0
votes

Installation de modules persistants dans les nouveaux environnements virtuels Python

Pour le fond, je travaille principalement dans le terminal et modifie le code en utilisant vim. Pour les projets python à long terme, je gère les fichiers venv et verrouille les fichiers dans le contrôle de source à l'aide de la poésie.

Il y a quelques modules que j'aime avoir installés dans presque tous les venv dans lesquels je travaille, tels que ipython / ptpython, (pytest-) icdiff, et d'autres extensions de "qualité de vie" que je n'ai pas besoin d'imposer aux collaborateurs du projet qui n'utilisent pas mon flux de travail. Je peux installer ptpython dans la portée globale en utilisant le gestionnaire de paquets de ma distribution (ou pipx), mais lorsque je l'exécute, il ne s'exécute pas dans le venv local et les dépendances locales ne sont pas accessibles. Cela devient odieux car je recrée périodiquement des venvs à mesure que les fichiers de verrouillage changent. En ce moment, j'ai un script shell qui installe les choses, mais cela ressemble à un hack.

Une solution idéale pourrait être un moyen de créer quelque chose comme un modèle venv, similaire à l'option git templatedir. Y a-t-il quelque chose de tel pour Python?


0 commentaires

3 Réponses :


0
votes

Le module virtualenv a une option pour inclure des packages de site système dans le venv:

python3 -m venv --system-site-packages .venv

Il y a une demande de fonctionnalité pour ajouter la prise en charge de cette option à la poésie.

Il y a un bel aperçu des packages de site dans ce fil .


0 commentaires

0
votes

Cela ne répond peut-être pas directement, mais je pense que les environnements anaconda sont la voie à suivre. Vous pouvez créer différents environnements «de base», puis les cloner. Ensuite, vous pouvez ajouter plus de packages en utilisant pip comme vous le souhaitez sur le nouvel environnement cloné, ne modifiant ainsi pas la base, mais offrant une personnalisation sur un nouvel environnement.

Essayez cette réponse: https://stackoverflow.com/a/40702703/7654532


0 commentaires

0
votes

Solution

Ce problème n'est pas spécifique à Python venv, il est également présent dans rvm et nvm. Installez simplement le package sous l'espace de noms Python global et ajoutez-le à votre PYTHONPATH afin que si le package n'est pas installé dans le référentiel local, Python retombe dans votre espace de noms Python global sans modifier le fichier de verrouillage du référentiel.


0 commentaires