Как использовать pip с Python 3.x вместе с Python 2.x


204

Я установил Python 3.x (помимо Python 2.x в Ubuntu) и медленно начал объединять модули, которые использую в Python 2.x.

Поэтому мне интересно, какой подход я должен предпринять, чтобы облегчить себе жизнь, используя pip как для Python 2.x, так и для Python 3.x?


2
Лично я бы избегал глобальной установки пакетов и использовал virtualenv. Затем вы используете pip из своей виртуальной среды для каждого проекта, и вы всегда используете правильный.
jpmc26

Ответы:


192

Подход, который вам следует предпринять, - это установить pipдля Python 3.2.

Вы делаете это следующим образом:

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.2 get-pip.py

Затем вы можете установить что-то для Python 3.2 с помощью pip-3.2и установить что-нибудь для Python 2-7 с помощью pip-2.7. Команда в pipконечном итоге укажет на один из них, но я не уверен, на какой, поэтому вам придется проверить.


9
Это было легко, спасибо. sudo python3.2 get-pip.pyinstalls pipи pip-3.2скрипты, /usr/local/binи оба логически используют Python 3. sudo python get-pip.pyinstalls pipand pip-2.7here, поэтому в данном случае pipиспользуется Python 2.7. Я дополнительно создал ссылку на pip-3.2как pip3и протестировал: Perfect! :)
theta

6
В Fedora это pip3.3, то есть без дефиса между pip и версией. Проверьте, /usr/binкакие у вас там версии pip.
Shailen

5
[x] Ubuntu тоже использует [ pip2 | pip2.7 | pip3 | pip3.4 ]. Это изменение pipили различие между разными системами?
Джон Суррелл,

После казни я получилYou're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Кевин Бротке

Так что тогда сделай это. :-)
Леннарт Регебро

55

Что вы также можете сделать, так это использовать apt-get:

apt-get install python3-pip

По моему опыту, это тоже работает довольно плавно, плюс вы получаете все преимущества от apt-get.


2
12.04 не могу этого сделать.
dranxo 05

15
Я успешно использовал это (т.е. sudo apt-get install python3-pip), а затем смог установить пакеты python3 с помощью «sudo python3 -m pip install package».
Tom Slee

2
На сегодняшний день я считаю, что apt-get предоставляет вам устаревшую версию 1.5.6; если вам не нужна ошибка AssertionErrror во время pip freeze > requirements(или другие потенциальные ошибки), установите последнюю версию из исходных кодов и избавьтесь от головной боли.
Ибо Ян

для установки должен быть rootpython3-pip
Florent

Несмотря на установку, pipиспользование python3.7 pipпо-прежнему используется по умолчанию с Python 2.7 на ubuntu 14.04 :( Мне удалось обновить pip до последней версии, то есть 19.3.1, но он по-прежнему использует по умолчанию python2.7. Как использовать его с python 3.7 ?
Любопытный разработчик

48

Сначала установите Python 3 pip, используя:

sudo apt-get install python3-pip

Затем, чтобы использовать Python 3 pip использовать:

pip3 install <module-name>

Для Python 2 pipиспользования:

pip install <module-name>

5
Пипа Python 2 не существует, это зависит от используемой вами ОС. Например, в Arch Linux pip --versionуказано, что по умолчанию он работает на python 3.6 .
Даниэль Андрей Минкэ

это кажется мне наиболее интуитивно понятным и простым решением, спасибо!
gebbissimo

17

Кратчайший путь:

python3 -m pip install package
python -m pip install package

`` (test-exif) alex @ alex-xps-13-9370: ~ / projects / oe / app / exif $ python3 -m pip install exif / usr / bin / python3: Нет модуля с именем pip ``
axd

@axd в этом случае сначала установите pip, используя sudo apt-get install python3-pip. Предполагая, что вы используете python3.
Fiveelements

15

Если вы не хотите указывать версию каждый раз, когда используете pip :

Установите pip:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3

и экспортируем путь:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH

11
Не могли бы вы уточнить? Я не понимаю, как установка distribute связана с тем, что вам не нужно указывать версию pip, которую вы хотите использовать.
Петр Доброгост

5

Это сработало для меня в OS X: (Я говорю это, потому что иногда неприятно, что у Mac есть «собственная» версия каждого инструмента с открытым исходным кодом, и вы не можете удалить его, потому что «его улучшения» делают его уникальным для работы других продуктов Apple , а если убрать, то все начнет падать)

Я выполнил шаги, предоставленные @Lennart Regebro, чтобы получить pip для python 3, тем не менее, pip для python 2 все еще был первым на пути, поэтому ... я создал символическую ссылку на python 3 внутри / usr / bin ( на самом деле я сделал то же самое, чтобы мои 2 питона работали спокойно):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

Обратите внимание, что я добавил 3в конце, поэтому в основном вам нужно использовать pip3вместо просто pip.

Сообщение старое, но я надеюсь, что когда-нибудь это кому-то поможет. теоретически это должно работать для любой системы LINUX.


5

В Windows сначала установили Python 3.7, а затем Python 2.7. Затем используйте командную строку:

pip установить имя-модуля python2

pip3 установить имя-модуля python3

Вот и все


1
Спасибо огромное! отсутствие 3 после пункта было моей проблемой.
Мэтт

4

В Suse Linux 13.2 pip вызывает python3, но pip2 доступен для использования более старой версии python.


то же самое на voidlinux
Radagast

3

Обратите внимание, что в msys2 я нашел полезными следующие команды:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

2

Думал, что это старый вопрос, думаю, у меня есть лучшее решение

  1. Чтобы использовать pip для среды python 2.x, используйте эту команду -

    py -2 -m pip install -r requirements.txt

  2. Чтобы использовать pip для среды python 3.x, используйте эту команду -

    py -3 -m pip install -r requirements.txt

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.