C'est une fonction qui vous permet de créer plusieurs environnements Python sur la même machine (OS).
--Modifier la version de Python
C'est extrêmement plus rapide que de créer à partir de zéro, et vous pouvez le faire avec seulement quelques commandes. J'ai été surpris quand je l'ai touché pour la première fois, mais c'est une fonction très conviviale pour le développement. Pouvez-vous utiliser docker? </ s>
http://cloverrose.hateblo.jp/entry/2012/10/01/235126 http://qiita.com/H-A-L/items/5d5a2ef73be8d140bdf3 http://qiita.com/Kodaira_/items/feadfef9add468e3a85b
J'utilise généralement python avec Anaconda sur Windows et aussi virtualenv via la commande conda, mais Windows n'a pas la culture d'exiger sudo. Par conséquent, j'ai complètement oublié qu'il y avait quelque chose qui nécessitait sudo.
À ce moment-là, j'essayais un programme de serveur principal pour python appelé Bottle.
Jusqu'à l'installation de la bouteille
$ virtualenv --no-site-packages bottle_test
$ cd bottle_test
$ pip install bottle
Ensuite, j'ai copié l'exemple de programme sur start_server.py et j'ai essayé de l'exécuter.
tester
$ python start_server.py
...(Omission)...
socket.error: [Errno 13] Permission denied
Oh, c'est sudo. J'ai oublié.
Exécuter avec sudo
$ sudo python start_server.py
...(Omission)...
ImportError: No module named bottle
cette? Avez-vous oublié de mettre la bouteille? Est-ce stupide?
Confirmation de version
$ pip freeze
appdirs==1.4.3
bottle=0.12.13
packaging=16.8
pyparsing==2.2.0
six=1.10.0
Ah, ça? Il est installé ... pourquoi ai-je une erreur? ,,, Ah!
sudo basculera temporairement votre répertoire personnel sur / root, et vous n'avez pas créé de virtualenv dans / root. alors. Ce que je viens de créer est le propre virtualenv de l'utilisateur connecté, pas pour root. C'était comme ça.
Après avoir enquêté, j'ai trouvé trois façons de le gérer.
Eh bien, je ne peux pas utiliser 3 pour ce que j'essaie de faire cette fois.
Cela dépend grandement de la structure des dossiers lors de la création de l'environnement virtuel, mais par exemple, supposons que vous le créez comme suit
Créer une virtualenv
~ $ mkdir test
~ $ cd test
~/test $ virtualenv --no-site-packages testenv
~/test $ cd testenv
~/test/testenv $ source bin/activate
Dans ce cas, le chemin python utilisé par l'environnement virtuel testenv est ~ / test / testenv / bin / python
.
Vous pouvez appeler cela directement avec sudo pour démarrer python avec l'environnement virtuel testenv.
Méthode d'exécution qui fonctionne comme prévu
(testenv) $ sudo ~/test/testenv/bin/python start_server.py
Je n'ai pas essayé cette méthode. L'idée est simple, il semble essayer de créer un virtualenv qui peut être utilisé lorsque sudo est terminé.
Créer virtualenv avec sudo
$ sudo virtualenv venv
Dans ce cas, l'installation du package semble être la suivante.
$ sudo venv/bin/pip $PACKAGE
$ sudo sh -c ". venv/bin/activate; pip install $PACKAGE"
https://askubuntu.com/questions/234758/how-to-use-a-python-virtualenv-with-sudo http://stackoverflow.com/questions/2658902/in-my-virtualenv-i-need-to-use-sudo-for-all-commands http://emilkirkegaard.dk/en/?p=5770
Nous avons partagé les pièges de python virtualenv. J'espère que ce sera une référence pour votre vie de développement!
Eh, n'utilisez-vous pas python? Est-ce javascript principal? Je suis généralement C # main! </ s>
Puis!
Recommended Posts