2 votes

Quel est l'équivalent en Python des environnements virtuels mais pour un compte utilisateur sur un Mac OS ?

Je veux installer différents paquets et logiciels, mais je n'aime vraiment pas l'idée de faire un sudo pour installer quoi que ce soit.

J'utilise Homebrew et MacPorts pour obtenir toutes les applications dont j'ai besoin mais est-il possible d'installer des applications, des bibliothèques et des paquets spécifiques à un environnement virtuel de style Python et si je pense que je ne veux pas que ces paquets entrent en collision, je peux simplement supprimer un environnement virtuel ou simplement utiliser un environnement différent ?

Veuillez me faire savoir si la question n'a pas de sens. Depuis que j'ai commencé à utiliser des environnements virtuels dans Python, je ne peux pas imaginer ne pas travailler avec des environnements virtuels et je me demandais s'il existe quelque chose d'équivalent ou un modèle d'installation que les gens recommandent pour imiter ce comportement ?

ps> Je sais qu'il y a aussi Fink mais je ne l'utilise pas.


Version 2 :
Je pense que je dois vérifier davantage ma question.
J'utilise déjà virtualenvwrapper et je fais tout ce qui concerne Python dans des environnements virtuels. La question est indépendante de Python. C'est juste que virtualenv m'a inspiré pour voir s'il existait un équivalent, à l'échelle du compte utilisateur.

Ce que je pensais être génial s'est produit lorsque j'ai essayé d'installer libjpeg, PIL, FreeType2, Pillow, etc.
Je voulais installer ces bibliothèques ou des paquets comme libjpeg, FreeType2 dans une environnement virtuel de l'OS. Si j'avais l'impression que la version Homebrew de ces installations de bibliothèques ne me satisfaisait pas, je pourrais simplement travailler dans un autre environnement ou essayer d'autres procédures d'installation et passer d'un environnement à l'autre des applications installées.

Je me demandais donc si quelque chose comme ça existe pour OS X ou s'il y a des astuces pour l'émuler ?

0 votes

Je ne suis pas sûr d'avoir bien compris votre question, mais pourquoi ne pas utiliser des machines virtuelles ? Jetez un œil à VirtualBox en combinaison avec Vagrant (vagrantup.com).

2voto

chiggsy Points 2899

Si vous tenez absolument à ce paradigme, les machines virtuelles semblent être la prochaine étape logique, non ? Prenez Virtualbox et faites votre travail dans une VM.

Notez cependant que les gestionnaires de paquets résolvent de nombreux problèmes que virtualenv aborde. Les librairies que vous mentionnez ne changeront pas radicalement d'interface, ce sont des versions stables.

Ce sont les librairies Python qui sont les plus volatiles, pas les choses comme FreeType. J'utiliserais simplement la version utilisée par X11.

0voto

Je ne suis pas sûr de comprendre ce que vous demandez mais, si vous demandez à créer des environnements virtuels Python en utilisant virtualenv alors vous y êtes déjà. L'avantage d'utiliser virtualenv est qu'il crée une instance Python autonome dans le répertoire de l'environnement virtuel que vous créez. Lorsque vous utilisez l'option python y pip dans le virtualenv bin (c'est ce qui se passe lorsque vous activate le virtualenv), tous les paquets Python que vous installez, que ce soit avec python setup.py o pip install ou même easy_install sont installés sur un site-library dans l'environnement virtuel et n'ont aucun effet sur les autres installations Python sur votre système. Le répertoire de l'environnement virtuel et son contenu sont soumis aux permissions normales du système de fichiers. Vous pouvez donc le créer sans avoir besoin d'utiliser la commande sudo (par exemple, si vous le créez quelque part dans votre répertoire personnel) et vous pouvez définir les autorisations du fichier pour contrôler si d'autres utilisateurs ont accès au virtualenv. À moins que vous n'utilisiez l'option --no-site-packages lors de la création du virtualenv, ce dernier aura accès aux paquets existants ou nouveaux ajoutés à l'instance Python de base (l'instance Python du système ou toute autre instance utilisée pour créer le virtualenv, par défaut, l'instance Python que vous avez utilisée pour créer le virtualenv). virtualenv a été installé à l'origine). Mais les paquets installés localement dans l'environnement virtuel n'affectent pas l'instance originale de Python. Si vous avez utilisé virtualenv --no-site-packages Si la bibliothèque Python est utilisée, aucun paquet en dehors de la bibliothèque standard Python ne sera "hérité" par l'environnement virtuel.

Vous pouvez utiliser virtualenv en conjonction avec des gestionnaires de paquets tiers comme MacPorts, Homebrew, ou Fink (ils comprennent virtualenv ports/recipes/packages), mais dans un environnement virtuel, vous devrez gérer vous-même les paquets Python locaux, en utilisant probablement la commande pip installé dans chaque environnement virtuel. virtualenv ne fournit pas de mécanisme pour gérer les entités qui ne sont pas empaquetées à l'aide de l'empaquetage standard de type distutils de Python, c'est-à-dire les applications et les bibliothèques C non-Python.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X