Як використовувати pip з Python 3.x поряд з Python 2.x


197

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

Тож мені цікаво, який підхід я повинен зробити, щоб полегшити своє життя, використовуючи pip як для Python 2.x, так і для Python 3.x?


2
Особисто я уникаю встановлення глобальних пакетів і використовую virtualenv. Потім ви використовуєте pip з вашого віртуального середовища для кожного проекту, і ви завжди використовуєте правильний.
jpmc26

Відповіді:


185

Ви повинні скористатися підходом до встановлення 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.pyВстановлює pipта pip-3.2скрипти в /usr/local/binі обидва логічно використовують Python 3. sudo python get-pip.pyвстановлює pipі pip-2.7тут, тому в цьому випадку pipвикористовується Python 2.7. Я створив додаткову посилання , pip-3.2як pip3і випробовуватися: Відмінно! :)
theta

6
У Fedora це pip3.3, тобто без тире між pip та версією. Перевірте, /usr/binякі версії для піп-файлів у вас є.
Шейлен

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
Кевін Бротке

Тож зроби це тоді. :-)
Леннарт Регебро

53

Що ви також можете зробити, це використовувати apt-get:

apt-get install python3-pip

На мій досвід, це також працює досить вільно, плюс ви отримуєте всі переваги від apt-get.


2
12.04 я не можу цього зробити.
dranxo

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>

4
Немає піт-файлів Python 2, це залежить від ОС, яку ви використовуєте. Наприклад, у Arch Linux pip --versionзазначено, що за замовчуванням працює на python 3.6 .
Даніель Андрій Мінка

це здається найбільш інтуїтивним і простим рішенням, дякую!
gebbissimo

15

Якщо вам не потрібно вказувати версію кожного разу, коли ви використовуєте 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
Не могли б ви детальніше? Я не бачу, як установка дистрибутива пов'язана з тим, що не потрібно вказувати версію pip, яку ви хочете використовувати.
Пьотр Доброгост

13

Найкоротший шлях:

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 у цьому випадку спочатку встановіть pip, використовуючи sudo apt-get install python3-pip. Припустимо, що ви використовуєте python3.
п’ять елементів

5

Це працювало для мене в OS X: (Я кажу це, тому що іноді болить, що mac має "свою" версію кожного інструменту з відкритим кодом, і ви не можете його видалити, оскільки "його вдосконалення" роблять його унікальним для роботи інших яблучних речей , і якщо ви видалите його, речі почнуть падати)

Я дотримувався кроків, наданих @Lennart Regebro, щоб отримати pip для python 3, проте, піп для 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.


4

У Suse Linux 13.2 pip викликає python3, але pip2 доступний для використання старішої версії python.


те ж саме на voidlinux
Radagast

4

У Windows спочатку встановили Python 3.7, а потім Python 2.7. Потім скористайтеся командним рядком:

pip встановити python2-module-name

pip3 встановити ім'я модуля python3

Це все


3

Зауважте, що в msys2 я вважаю, що ці команди є корисними:

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

2

Думав, що це старе питання, я думаю, що в мене є краще рішення

  1. Щоб використовувати pip для середовища python 2.x, використовуйте цю команду -

    py -2 -m встановити піп -r вимоги.txt

  2. Щоб використовувати pip для середовища python 3.x, використовуйте цю команду -

    py -3 -m встановити піп -r вимоги.txt

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.