Question

Y at-il moyen de faire pip bien jouer avec plusieurs versions de Python? Par exemple, je veux utiliser l'installation ou mon installation le site 2.6 pip installer explicitement les choses soit mon site 2.5.

Par exemple, avec easy_install, j'utilise easy_install-2.{5,6}.

Et, oui - je sais virtualenv, et non -. Ce n'est pas une solution à ce problème particulier

Était-ce utile?

La solution

Le recommandation actuelle est d'utiliser python -m pip, où python est la version de Python que vous souhaitez utiliser. Telle est la recommandation, car il fonctionne sur toutes les versions de Python, et dans toutes les formes de virtualenv. Par exemple:

# The system default python:
$ python -m pip install fish

# A virtualenv's python:
$ .env/bin/python -m pip install fish

# A specific version of python:
$ python-3.6 -m pip install fish

Réponse précédente, à gauche pour la postérité:

Depuis la version 0.8, prend en charge Pip pip-{version}. Vous pouvez utiliser la même chose que easy_install-{version}:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

EDIT : pip a changé son schéma à utiliser pipVERSION au lieu de pip-VERSION dans la version 1.5. Vous devez utiliser ce qui suit si vous avez pip >= 1.5:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

Vérifier https://github.com/pypa/pip/pull/1053 pour plus de détails


Références:

Autres conseils

/path/to/python2.{5,6} /path/to/pip install PackageName ne fonctionne pas?

Pour que cela fonctionne sur une version python qui ne dispose pas de pépin déjà installé, vous devez télécharger pip et faire python*version* setup.py install. Par exemple python3.3 setup.py install. Cela résout l'erreur d'importation dans les commentaires. (Comme suggéré par @hbdgaf)

J'avais python 2.6 installé par défaut (Amazon EC2 AMI), mais besoin python2.7 plus quelques paquets externes pour mon application. En supposant que vous python2.7 déjà installé aux côtés de python par défaut (2.6 dans mon cas). Voici comment installer pip et packages pour python2.7 non-default

Installer pip pour votre version python:

curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py

Utiliser la version pip spécifique pour installer des paquets:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python

Il a travaillé pour moi dans les fenêtres de cette façon:

  1. J'ai changé le nom des fichiers python python.py et pythonw.exe à python3.py pythonw3.py

  2. Alors j'ai couru cette commande dans l'invite:

    python3 -m pip install package

D'autres réponses montrent comment utiliser pip à la fois 2.x et 3.x. Python, mais ne montre pas la façon de traiter le cas de plusieurs distributions Python (par exemple. Python et Python Anaconda d'origine) .

J'ai un total de 3 versions de Python: Python original 2.7 et Python 3.5 et Python 3.5 Anaconda

.

Voici comment installer un paquet dans:

  1. Original Python 3.5 :

    /usr/bin/python3 -m pip install python-daemon
    
  2. Original Python 2.7 :

    /usr/bin/python -m pip install python-daemon
    
  3. Anaconda Python 3.5 :

    python3 -m pip install python-daemon
    

    ou

    pip3 install python-daemon
    

    Plus simple, comme Anaconda remplace les binaires de python d'origine dans l'environnement de l'utilisateur.

    Bien sûr, l'installation Anaconda doit être fait avec la commande conda, ceci est juste un exemple.


En outre, assurez-vous que pip est installé pour que python.You spécifique peut-être besoin d'installer manuellement pépin. Cela fonctionne dans Ubuntu 16.04:

sudo apt-get install python-pip 

ou

sudo apt-get install python3-pip

Je suis tombé sur cette question moi-même récemment et constaté que je ne reçois pas le pépin droit pour Python 3, sur mon système Linux qui a également Python 2.

D'abord, vous devez vous assurer que vous avez installé pip pour votre version python:

Pour Python 2:

sudo apt-get install python-pip

Pour Python 3:

sudo apt-get install python3-pip

Ensuite, pour installer des packages pour une version de Python ou l'autre, il suffit d'utiliser les éléments suivants pour Python 2:

pip install <package>

ou pour Python 3:

pip3 install <package>

pip est aussi un paquet python. Donc, la meilleure façon d'installer des modules à une version python spécifique serait inférieure

 python2.7 /usr/bin/pip install foo

ou

python2.7 -m pip install foo

Donc, apparemment, il existe plusieurs versions de easy_install et pip. Il semble être un gros gâchis. Quoi qu'il en soit, ce que je l'ai fait installer Django pour Python 2.7 sur Ubuntu 12.10:

$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin

Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip

$ sudo pip-2.7 install django
Downloading/unpacking django
  Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> 

A partir de là: https://docs.python.org/3/installing/

Voici comment installer les paquets pour différentes versions installées en même temps linux, mac, posix :

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4
python3.5 -m pip install SomePackage  # specifically Python 3.5
python3.6 -m pip install SomePackage  # specifically Python 3.6

de Windows , utilisez le lanceur Python py en combinaison avec le commutateur -m:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

Sous Linux, Mac OS X et d'autres systèmes POSIX, utilisez les commandes Python versionnés en combinaison avec le commutateur -m pour exécuter la copie appropriée de pip:

python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage

(convenablement versionnées commandes pip peuvent également être disponibles)

Sur Windows, utilisez le lanceur Python py en combinaison avec le commutateur -m:

py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3.4 -m pip install SomePackage  # specifically Python 3.4

si vous obtenez une erreur pour py -3.4 puis essayez:

pip install SomePackage

La plupart des réponses traitent ici la question, mais je veux ajouter quelque chose ce qui me confond continuellement en ce qui concerne la création d'une installation alternative de python dans le /usr/local sur CentOS 7. Quand je suis installé, il est apparu comme pip travaillait depuis Je pourrais utiliser pip2.7 install et installerait modules. Cependant, ce que je ne pouvais pas comprendre pourquoi était ma nouvelle version installée de python ne voyait pas ce que j'installation.

Il se trouve dans CentOS 7 qu'il existe déjà un python2.7 et un pip2.7 dans le dossier /usr/bin. Pour installer pip pour votre nouvelle distribution de python, vous devez dire précisément sudo aller à /usr/local/bin

sudo /usr/local/bin/python2.7 -m ensurepip

Cela devrait obtenir pip2.7 installé dans votre dossier /usr/local/bin avec votre version de python. L'astuce est que lorsque vous voulez installer des modules, vous devez soit modifier la variable $PATH sudo pour inclure /usr/local/bin ou si vous devez exécuter

sudo /usr/local/bin/pip2.7 install <module>

si vous souhaitez installer un nouveau module. Il m'a fallu toujours de se rappeler que sudo n'a pas été immédiatement voir /usr/local/bin.

Installation de plusieurs versions de Python et packages respectifs.

version Python sur la même machine Windows: 2.7, 3.4 et 3.6

Installation des 3 versions de Python :

  • installé Python 2.7, 3.4 et 3.6 ci-dessous avec les chemins

PATH pour les 3 versions de Python :

  • Fait que la variable PATH (dans les variables système) ci-dessous a des chemins inclus - C: \ Python27 \; C: \ Python27 \ Scripts; C: \ Python34 \; C: \ Python34 \ Scripts, C: \ Python36 \; C: \ Python36 \ scripts \;

Modification du nom executables pour les versions :

  • Changement du nom de l'exécutable python dans C: \ Python36 et C:. \ Python34 à python36 et python34 respectivement

Vérifié pour l'invite de commande avec toutes les versions:

Installation des packages séparément pour chaque version

Contexte: Archlinux

Action:
Installer python2-pip:
sudo pacman -S python2-pip

Vous avez maintenant pip2.7:
sudo pip2.7 install boto

Test (dans mon cas je avais besoin 'Boto'):
Exécutez les commandes suivantes:

python2
import boto

Le succès:. Pas d'erreur

Quitter: Ctrl + D

par exemple, si vous définissez d'autres versions (par exemple 3,5) par défaut et que vous voulez installer pip pour Python 2.7:

  1. pépin de téléchargement à l'adresse https://pypi.python.org/pypi/pip ( tar)
  2. fichier tar dézipper
  3. cd dans le répertoire du fichier
  4. sudo python2.7 setup.py install

Vous pouvez aller à, par exemple C: \ python2.7 \ Scripts et cde de ce chemin. Après cela, vous pouvez exécuter pip2.7 installer votrepaquetage ...

Cela package d'installation pour cette version de Python.

Voici mon avis sur le problème. Travaux pour python3. Les principales caractéristiques sont les suivantes:

  • Chaque version Python est compilé à partir des sources
  • Toutes les versions sont installées localement
  • Ne pas mutiler l'installation de Python par défaut de votre système de quelque façon que
  • Chaque version Python est isolé avec virtualenv

Les étapes sont les suivantes:

  1. Si vous avez plusieurs versions de python supplémentaires installées dans une autre façon, se débarrasser d'eux, par exemple, retirer $ HOME / .local / lib / python3.x , etc. (également ceux installés dans le monde). Ne touchez pas la version par défaut de python3 de votre système bien.

  2. Télécharger la source pour les différentes versions de python sous la structure de répertoire suivant:

    $HOME/
        python_versions/ : download Python-*.tgz packages here and "tar xvf" them.  You'll get directories like this:
          Python-3.4.8/
          Python-3.6.5/
          Python-3.x.y/
          ...
    
  3. A chaque "Python-3.x.y /" répertoire, procédez comme suit (faire PAS : utilisez la commande "sudo" dans l'une des étapes!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
    
  4. "python_versions /" créer des fichiers comme ceci:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
    
  5. Maintenant, chaque fois que vous souhaitez opter pour python3.x, faire

    source $HOME/python_versions/env_python3x.bash
    

    pour entrer dans le virtualenv

  6. Alors que dans le virtualenv, installez vos paquets python favoris avec

    pip install --upgrade package_name
    
  7. Pour quitter la virtualenv et la version python il suffit de taper "désactiver"

Ceci est probablement la chose tout à fait tort de le faire (je suis un noob python), mais je suis allé et modifié le fichier pip

#!/usr/bin/env python3 <-- I changed this line.

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Pour les fenêtres en particulier: \ chemin \ \ python.exe -m pip install PackageName fonctionne.

Si vous avez plusieurs versions, ainsi que de multiples architectures (32 bits, 64 bits), vous aurez besoin d'ajouter un -32 ou -64 à la fin de votre version.

Pour les fenêtres, allez à cmd et --list type py et il produira les versions que vous avez installées. La liste ressemblera à ce qui suit:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

La commande complète à titre d'exemple sera:

py -3.6-32 -m pip install (package)

Si vous souhaitez obtenir plus indepth, d'installer une version spécifique d'un paquet sur une version spécifique de python, utilisez == (version) après l'emballage. À titre d'exemple,

py -3.6-32 -m pip install opencv-python==4.1.0.25
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top