Работа с несколькими версиями Python и PIP? - PullRequest
412 голосов
/ 11 мая 2010

Есть ли способ заставить pip хорошо играть с несколькими версиями Python? Например, я хочу использовать pip для явной установки вещей либо на мой сайт 2.5, либо на мой сайт 2.6.

Например, с easy_install я использую easy_install-2.{5,6}.

И да - я знаю о virtualenv, и нет - это не решение этой конкретной проблемы.

Ответы [ 19 ]

495 голосов
/ 06 февраля 2011

Текущая рекомендация - использовать python -m pip, где python - это версия Python, которую вы хотели бы использовать. Это рекомендация, потому что она работает во всех версиях Python и во всех формах virtualenv. Например:

# 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

Предыдущий ответ, оставленный для потомков:

Начиная с версии 0.8, Pip поддерживает pip-{version}. Вы можете использовать его так же, как easy_install-{version}:

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

EDIT : pip изменил свою схему, чтобы использовать pipVERSION вместо pip-VERSION в версии 1.5. Вы должны использовать следующее, если у вас есть pip >= 1.5:

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

Проверьте https://github.com/pypa/pip/pull/1053 для более подробной информации


Ссылки:

85 голосов
/ 16 мая 2016

В Windows вы можете запустить модуль pip, упомянув версию Python (необходимо убедиться, что программа запуска находится на вашем пути)

py -3.4 -m pip install pyfora

py -2.7 -m pip install pyfora

В качестве альтернативы, вы можете вызвать нужный исполняемый файл Python, например, так:

/path/to/python.exe -m pip install pyfora

75 голосов
/ 11 мая 2010

/path/to/python2.{5,6} /path/to/pip install PackageName не работает?

Чтобы это работало на любой версии Python, в которой еще не установлен pip, вам нужно скачать pip и выполнить python*version* setup.py install. Например python3.3 setup.py install. Это устраняет ошибку импорта в комментариях. (Как подсказывает @hbdgaf)

49 голосов
/ 24 августа 2014

У меня был установлен Python 2.6 по умолчанию (Amazon EC2 AMI), но мне понадобился python2.7 плюс некоторые внешние пакеты для моего приложения. Предполагая, что вы уже установили python2.7 вместе со стандартным python (2.6 в моем случае). Вот как установить pip и пакеты для нестандартного python2.7

Установите pip для вашей версии Python:

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

Используйте конкретную версию pip для установки пакетов:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python
27 голосов
/ 18 мая 2016

У меня это работало в Windows следующим образом:

  1. Я изменил имя файлов python python.py и pythonw.exe на python3.py pythonw3.py

  2. Тогда я просто запустил эту команду в командной строке:

    python3 -m pip install package

23 голосов
/ 09 октября 2016

Другие ответы показывают, как использовать pip с 2.X и 3.X Python, но не показывают , как обрабатывать случай нескольких дистрибутивов Python (например, оригинальный Python и Anaconda Python) .

У меня есть 3 версии Python: оригинальный Python 2.7 и Python 3.5 и Anaconda Python 3.5.

Вот как я устанавливаю пакет в:

  1. Оригинал Python 3.5 :

    /usr/bin/python3 -m pip install python-daemon
    
  2. Оригинал Python 2.7 :

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

    python3 -m pip install python-daemon
    

    или

    pip3 install python-daemon
    

    Проще, поскольку Anaconda переопределяет исходные двоичные файлы Python в пользовательской среде.

    Конечно, установка в anaconda должна выполняться командой conda, это только пример.


Также убедитесь, что pip установлен для этого конкретного питона. Возможно, вам придется установить pip вручную. Это работает в Ubuntu 16.04:

sudo apt-get install python-pip 

или

sudo apt-get install python3-pip
14 голосов
/ 04 марта 2016

Недавно я сам столкнулся с этой проблемой и обнаружил, что не получаю нужного пипса для Python 3 в моей системе Linux, в которой также есть Python 2.

Сначала убедитесь, что у вас установлен pip для вашей версии Python:

Для Python 2:

sudo apt-get install python-pip

Для Python 3:

sudo apt-get install python3-pip

Затем, чтобы установить пакеты для одной версии Python или другой, просто используйте следующее для Python 2:

pip install <package>

или для Python 3:

pip3 install <package>
11 голосов
/ 02 апреля 2017

pip также является пакетом Python. Так что самый простой способ установить модули для конкретной версии Python будет ниже

 python2.7 /usr/bin/pip install foo

или

python2.7 -m pip install foo
10 голосов
/ 08 апреля 2013

Итак, очевидно, существует несколько версий easy_install и pip. Кажется, это большой беспорядок. Во всяком случае, это то, что я сделал, чтобы установить Django для Python 2.7 на 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
>>> 
7 голосов
/ 12 апреля 2018

В Linux, Mac OS X и других системах POSIX используйте версионные команды Python в сочетании с переключателем -m для запуска соответствующей копии pip:

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

(также могут быть доступны соответствующие команды pip)

В Windows используйте средство запуска Python py в сочетании с переключателем -m:

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

если вы получили ошибку для py -3.4, попробуйте:

pip install SomePackage
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...