J'utilise OSX et j'ai installé pip pour Python3.5 et Python2.7. Je sais que je peux exécuter la commande pip2
pour utiliser Python2 et lorsque j'utilise la commande pip3
, Python3.x sera utilisé. Le problème est que la valeur par défaut de pip
est définie sur Python2.7 et je veux que ce soit Python3.x.
Comment puis-je changer ça?
edit: Non, je n’exécute pas encore d’environnement virtuel. S'il s'agissait d'un environnement virtuel, je pourrais simplement exécuter Python3.x et oublier Python2.7. Malheureusement, OSX ayant besoin de Python2.7, je ne peux pas le faire. D'où pourquoi je demande ceci.
Merci d'avoir répondu. Cependant, je ne veux pas changer le fonctionnement de python
. Au lieu de cela, je voudrais changer le chemin que prend pip
. Pour le moment, pip -V
me montre pip 8.1.2 from /Library/Python/2.7/site-packages (python 2.7)
, mais je cherche pip 8.1.2 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)
. Je suis sûr qu'il doit y avoir un moyen de le faire. Des idées?
Je viens toujours de l'exécuter via Python lui-même, de cette façon:
python3 -m pip install some_module
ou
python2 -m pip install some_module
Le -m
appelle le module __main__.py
d'un paquet spécifié. Pip supporte cela.
Ne pouvez-vous pas alias pip='pip3'
dans votre ~/.bash_profile
?
Dans Terminal, exécutez nano ~/.bash_profile
, puis ajoutez à la fin une ligne qui lit alias pip='pip3'
. C'est sans danger. cela n'affectera pas les processus du système, seulement votre terminal.
Pour vos projets, vous devriez utiliser un virtualenv .
Vous pouvez choisir quel python sera celui de virtualenv lors de la création, en le spécifiant sur la ligne de commande:
virtualenv -p python3 env
# then
. env/bin/activate
python # ← will run python3
Cet interpréteur python sera celui utilisé lorsque vous exécuterez python
ou pip
pendant que virtualenv est actif.
Sous le capot, l'activation de virtualenv va:
PATH
pour que les fichiers binaires de env/bin
remplacent ceux de votre système.PYTHONHOME
pour que les modules python soient chargés à partir de env/lib
.Donc, python
, pip
et tout autre paquet que vous installez avec pip
seront exécutés à partir de virtualenv, avec la version de python que vous avez choisie et les versions de paquet que vous avez installées dans virtualenv.
En dehors de cela, exécuter python
sans utiliser virtualenv exécutera simplement le python par défaut du système, que vous ne pouvez généralement pas modifier car cela endommagerait de nombreux scripts système.
Puisque vous avez spécifié dans les commentaires que vous voulez que la syntaxe telle que pip install [package]
fonctionne, voici une solution:
Installez setuptools
pour Python3
: apt-get install python3-setuptools
pip
pour Python3
peut maintenant être installé par: python3 -m easy_install pip
Maintenant, vous pouvez utiliser pip
avec la version spécifique de Python pour installer le package pour Python 3 avec: pip-3.2 install [package]
Bien que PEP 394 ne mentionne pas spécifiquement pip
, il aborde un certain nombre d’autres commandes liées à Python (y compris python
lui-même). La version courte est que, pour des raisons de compatibilité ascendante, les commandes non versionnées doivent faire référence à Python 2.x pour le futur immédiat sur la plupart des systèmes raisonnables.
En général, ces alias sont implémentés sous forme de liens symboliques et vous pouvez simplement retourner le lien symbolique pour pointer vers la version de votre choix (par exemple, avec ln -f -s $(which pip3) $(which pip)
en tant que racine). Mais ce n'est peut-être pas une bonne idée si vous avez un logiciel qui s'attend à interagir avec Python 2 (ce qui peut être plus que vous ne le pensez puisque beaucoup de logiciels interagissent avec Python).
L'option saner consiste à configurer un Virtualenv avec Python 3. Ensuite, dans Virtualenv , toutes les commandes liées à Python feront référence à 3.x au lieu de 2.x. Cela ne cassera pas le système, contrairement au paragraphe précédent qui pourrait bien casser des choses.