2010-05-11 4 views
249

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

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

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

+4

на моей машине с простым python 2xx и 3xx, 'pip2' и' pip3', похоже, делают то, что я хочу –

ответ

266

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

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

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

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

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


Ссылки:

+6

Не работает. Хотя в последней версии pip был установлен скрипт pip-2.6, он не потрудился установить скрипт pip-2.5. –

+1

Вам нужно обновить версию python2.5 pip ... Она только создает pip- {PYVERSION} под питоном, которым вы пользуетесь. –

+3

Это неверно. Я запускаю pip 1.2.1 с Python2.7 на Ubuntu, и нет альтернативных версий pip. – Cerin

72

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

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

+2

Для этого, чтобы работать на python 3, вам нужно загрузить pip и выполнить «python3 setup.py install». Лично я считаю, что это решение будет не очень приятным. Для начала я даже не знал, что команда pip не была двоичной. Это не критика @bwinton, я просто удивлен, что нет лучшего способа сделать это. –

+26

«ИмпортError: нет модуля с именем pkg_resources» – Cerin

+0

То же, что @Cerin «ImportError: Нет модуля с именем pkg_resources» – Marco

10

По-видимому, существует несколько версий 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 
>>> 
+0

Спасибо, это было единственное, что работало для меня на RHEL. –

+0

sudo pip-2.7 install django больше не работает – Bren

42

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

Установки пипа для питона версии:

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

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

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

отлично работает для меня для python 3.4 со следующим: 'python3 get-pip.py', а затем с помощью команды pip с примером' pip34 install' – abimelex

+0

Спасибо. Очень полезно. Протестировано на двух разных серверах. – user2099484

+2

Это сработало, когда я использовал 'python2.7 get-pip.py' вместо 'python27 get-pip.py' – SummerEla

11

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

Сначала вы должны убедиться, что вы установили пип для вашей версии 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> 
56

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

py -3.4 -m pip install pyfora

py -2.7 -m pip install pyfora

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

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

+4

с 2,7 и 3,5 установленными на окнах , это сработало сразу –

+0

Нет ли способа иметь 'python2',' python3', 'pip2' и' pip3' в Windows? – thomthom

+1

Это, мой, мой бог. – FullStackFool

21

Он работал для меня в окнах так:

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

  2. Затем я только что запустил эту команду в ответ на приглашение:

    python3 -m pip install package

+4

Просто для всех, кто выясняет, как устанавливать пакеты в python3 с помощью pip на mac, эта команда - это то, как вы устанавливаете пакеты. Я потратил несколько часов на поиски, и я наконец нашел это! – sidney

15

Другие ответы показывают, как использовать пипс как с 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 
    

    Simpler как Анаконда переопределяет исходные двоичные файлы Python в среде пользователя.

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


Кроме того, убедитесь, что пип установлен для конкретного python.You может потребоваться вручную установить пипс. Это работает в Ubuntu 16.04:

sudo apt-get install python-pip 

или

sudo apt-get install python3-pip 
+0

Совет относительно Анаконды здесь не точен ... он не «переопределяет» что-либо. Тот факт, что он набирает версию Anaconda по умолчанию в вашей системе, - это просто побочный эффект вашей конкретной конфигурации, то, как вы установили каждый интерпретатор и порядок пути вашей среды ... они будут отличаться для других. –

+0

@CoreyGoldberg Я согласен, это было по умолчанию при моей установке Ubuntu 16.04 – quasoft

+0

Вы, сэр, это мужчина. Из всех совершенно бесполезных объяснений, связанных с этим вопросом, это единственное, что имеет смысл для меня. Время, чтобы псевдоним этих команд и продолжать свою жизнь! СПАСИБО. – Matt1776

0

Контекст: Archlinux

Действие:
Установите python2-пип:
sudo pacman -S python2-pip

Теперь у вас есть pip2.7 :
sudo pip2.7 install boto

испытаний (в моем случае мне нужно было 'Boto'):
Выполнить следующие команды:

python2 
import boto 

Success: Нет ошибок.

Выход: Ctrl + D

4

Отсюда: https://docs.python.org/3/installing/

Вот как установить пакеты для различных версий, которые установлены в то же время 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 

Windows, используйте пусковую установку py Python в комбинации с переключателем -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 
0

например, если вы установили другие версии (например, 3,5) по умолчанию, и хотите установить пип для питона 2.7:

  1. загрузить пип на https://pypi.python.org/pypi/pip (деготь)
  2. распаковать деготь файл
  3. кд в директорию файла
  4. Судо python2.7 setup.py install
10

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

python2.7 /usr/bin/pip install foo 

или

python2.7 -m pip install foo 
2

Большинство ответов здесь решать вопрос, но я хочу добавить что-то, что постоянно путая меня в связи с созданием альтернативной установки python в /usr/local на CentOS 7. Когда я установил там, он появился, как работает pip, так как я мог использовать pip2.7 install, и он установил модули. Однако я не мог понять, почему моя недавно установленная версия python не увидела, что я устанавливаю.

Оказалось, что в CentOS 7 уже есть python2.7 и pip2.7 в папке /usr/bin. Чтобы установить пип для нового распределения питона, вам нужно конкретно сказать Sudo, чтобы перейти к /usr/local/bin

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

Это должно получить установлен pip2.7 в папке /usr/local/bin вместе с версией Python. Хитрость заключается в том, что, когда вы хотите установить модули, вам необходимо либо модифицировать SUDO $PATH переменную для включения /usr/local/bin или вам необходимо выполнить

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

, если вы хотите установить новый модуль. Мне потребовалось навсегда вспомнить, что sudo не сразу увидел /usr/local/bin.

Смежные вопросы