Установите модуль с помощью pip для конкретной версии Python

138

В Ubuntu 10.04 по умолчанию установлен Python 2.6, затем я установил Python 2.7. Как я могу использовать pip installдля установки пакетов для Python 2.7.

Например:

pip install beautifulsoup4

по умолчанию устанавливает BeautifulSoup для Python 2.6

Когда я делаю:

import bs4

в Python 2.6 это работает, но в Python 2.7 это говорит:

No module named bs4
torayeff
источник
1
Возможная копия сделки с несколькими версиями Python и PIP?
Тревор Бойд Смит

Ответы:

54

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

Во многих дистрибутивах могут быть отдельные пакеты python2.6-pipи python2.7-pipпакеты, вызываемые с двоичными именами, такими как pip-2.6и pip-2.7. Если pip не входит в ваш дистрибутив для нужной цели, вы можете поискать setuptools или пакет easyinstall, или использовать virtualenv (который всегда будет включать pip в сгенерированной среде).

Сайт pip содержит инструкции по установке , если вы не можете найти что-либо в своем дистрибутиве.

Чарльз Даффи
источник
6
У меня нет ни pip-2.6, ни pip-2.7
torayeff
1
@torayeff Вы искали пакеты pip для конкретной версии? Упаковка зависит от дистрибутива, поэтому вам нужно будет либо немного поработать самостоятельно (поиск по доступным спискам пакетов), либо обратиться в специфический для Ubuntu канал поддержки.
Чарльз Даффи
1
Я пробовал это easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, но это не работает, что вы подразумеваете под работой ног?
Torayeff
3
@torayeff То же самое относится и к easy_install к pip - вы должны использовать версию, созданную для интерпретатора, для которого вы пытаетесь установить пакеты. «работа ногами» - это разговорный термин, относящийся к усилиям, обычно разнообразных, которые не являются особенно интеллектуально сложными, но могут занимать много времени (подумайте, как работа, которая требует времени, чтобы ходить, гуляя)… в этом случае, рассматривая Списки пакетов Ubuntu.
Чарльз Даффи
1
@torayeff ... и опять же, если вы не можете найти пакет pip в Ubuntu или просто установить его специально для Python 2.7, вы можете установить pip вручную, следуя инструкциям, на которые я ссылался в моем ответе; просто обязательно используйте python2.7исполняемый файл при выполнении этих инструкций.
Чарльз Даффи
189

В качестве альтернативы, так как pipсам по себе написан на python, вы можете просто вызвать его с той версией python, для которой вы хотите установить пакет:

python2.7 -m pip install foo
Turion
источник
1
Поскольку я устанавливаю с помощью pip в виртуальной среде (но в некоторых случаях мне нужно запускать его с системным питоном, с установленным PYTHONPATH - например, при использовании чего-либо, что зависит от wxPython), эта команда работала для меня.
Аарон Д
6
Лучшее решение всех проблем Python2 и Python3!
Суровый Вардхан Ладха
9
Я должен отметить, что правильный способ вызвать модуль в Python - этоpython 2.7 -m pip install foo
llrs
2
Я не могу высказать этот ответ достаточно. Наконец-то решена эта болезненная проблема на DietPi (Raspberry distro)
Pitto
1
@ Sergio Похоже, что -m не в том месте, я думаю, что команда должна быть больше похожа наpy37 -m "location-of-pip" install numpy
jrh
53

Вы можете выполнить модуль pip для конкретной версии python, используя соответствующий python:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4
Тьяго Коутиньо
источник
3
Я много раз прочесывал интернет в поисках этой команды. Я думаю, что большинство людей используют виртуальную среду для решения этой проблемы, но для меня это гораздо более жизнеспособная стратегия.
Дэйв Лю
Что делать, если я нахожусь внутри моего скрипта на python, который вызывает pip install beautifulsoup4. Как я могу убедиться, что скрипт был вызван с флагом -m?
Оген
Это был последний кусок моей головоломки, спасибо! pipи pip3оба были привязаны к python3.X для меня, поэтому мне пришлось использовать этот метод в качестве окольного способа установки pip для python2.7
airdas
25

Вы можете использовать этот синтаксис

python_version -m pip install your_package

Например. Если вы используете python3.5, вы назвали его "python3" и хотите установить пакет numpy

python3 -m pip install numpy
Catbuilts
источник
Это как мой ответ, но лучше, так как не нужно возиться с системными путями.
Turion
Кажется, теперь это будет лучшим ответом. Работал отлично со мной, а также.
LogicOnAbstractions
18

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

py -2 -m pip install pyfora
Муника Т
источник
1
Thansk. Это проснулось в моем случае. У меня 3.4 и 3.7 версия. Мне пришлось запустить py -3.7 -m pip install -r
needs.txt,
6

В качестве альтернативы, если вы хотите установить конкретную версию пакета с определенной версией Python, это способ

sudo python2.7 -m pip install pyudev=0.16

если "=" не работает, используйте ==

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev=0.16

Неверное требование: 'pyudev = 0.16' = не является допустимым оператором. Вы имели в виду ==?

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev==0.16

работает отлично

ravi.zombie
источник
4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi
Дэвид Маккоркл
источник
1
Это не работает, когда у вас есть несколько установок python3. У меня есть 3.4и 3.5, и я не могу pip installничего для 3.4.
byxor
3

Если у вас установлены обе версии Python 2.7 и 3.x, просто переименуйте exe-файл python версии 3.x в нечто вроде - «python.exe» в «python3.exe». Теперь вы можете использовать pip для обеих версий по отдельности. Если вы обычно набираете «pip install», по умолчанию будет использоваться версия 2.7. Если вы хотите установить его на версию 3.x, вам нужно вызвать команду как «python3 -m pip install».

Бхаскар Бхуян
источник
2

Для Python 3

sudo apt-get install python3-pip
sudo pip3 install beautifulsoup4

Для Python 2

sudo apt-get install python2-pip
sudo pip2 install beautifulsoup4

В Debian / Ubuntu pip- это команда, используемая при установке пакетов для Python 2, а pip3также команда, используемая при установке пакетов для Python 3.

Гаян Виракутти
источник
этот ответ падает, когда у вас обоих есть, например, python3.6 и python3.7. Тогда pip3 установит пакеты только для Python3 по умолчанию.
Мююстан
2

для использования на python2:

py -2 -m pip install beautifulsoup4
amalik2205
источник
1

Как и с любым другим скриптом Python, вы можете указать установку Python, с которой вы хотите его запустить. Вы можете поместить это в свой профиль оболочки, чтобы сохранить псевдоним. $1Относится к первому аргументу вы передаете в сценарий.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"
RKelley
источник
0

У меня был установлен Python 2.7 через Chocolatey на Windows и найден pip2.7.exeв C:\tools\python2\Scripts.

Используя этот исполняемый файл вместо pipкоманды, я установил правильный модуль ( requestsдля Python 2.7).

CodeManX
источник
0

Я столкнулся с подобной проблемой с другим пакетом под названием Twisted. Я хотел установить его для Python 2.7, но он был установлен только для Python 2.6 (версия системы по умолчанию).

Внесение простых изменений сработало для меня.

При добавлении пути Python 2.7 к вашей $PATHпеременной добавьте его в начало следующим образом:, PATH=/usr/local/bin:$PATHчтобы система использовала эту версию.

Если у вас возникли другие проблемы, вы можете следить за этим сообщением в блоге, которое мне помогло - https://github.com/h2oai/h2o-2/wiki/install-python-2.7-on-centos-6.3.-follow-this-sequence -exactly-для-CentOS-машина только

Раджи
источник