Instale um módulo usando pip para versão específica do python

138

No Ubuntu 10.04, por padrão, o Python 2.6 está instalado, e eu instalei o Python 2.7. Como posso usar pip installpara instalar pacotes para o Python 2.7.

Por exemplo:

pip install beautifulsoup4

por padrão instala BeautifulSoup for Python 2.6

Quando eu faço:

import bs4

no Python 2.6 ele funciona, mas no Python 2.7 ele diz:

No module named bs4
torayeff
fonte
1
Possível duplicata de Lidando com várias versões do Python e PIP?
Trevor Boyd Smith

Respostas:

54

Use uma versão pipinstalada na instância do Python na qual você deseja instalar novos pacotes.

Em muitas distribuições, pode haver pacotes python2.6-pipe separados python2.7-pip, chamados com nomes binários como pip-2.6e pip-2.7. Se o pip não estiver empacotado em sua distribuição para o destino desejado, você poderá procurar um pacote de ferramentas de instalação ou easyinstall ou usar o virtualenv (que sempre incluirá o pip em um ambiente gerado).

O site do pip inclui instruções de instalação , se você não encontrar nada na sua distribuição.

Charles Duffy
fonte
6
Eu não tenho nem pip-2.6 nem pip-2.7
torayeff
1
@torayeff Você procurou por pacotes pip específicos da versão? O empacotamento é específico da distribuição; portanto, você precisará fazer um pouco de trabalho manual (pesquisando nas listagens de pacotes disponíveis) ou solicitar um canal de suporte específico do Ubuntu.
Charles Duffy
1
Eu tentei este easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, mas não funciona, o que você quer dizer com trabalho braçal?
torayeff
3
@torayeff o mesmo se aplica ao easy_install e ao pip - você deve usar uma versão criada contra o intérprete para o qual está tentando instalar pacotes. "trabalho braçal" é um coloquialismo que se refere ao esforço, tipicamente de uma variedade que não é particularmente desafiadora do ponto de vista intelectual, mas que pode consumir muito tempo (pense em um trabalho que exige tempo gasto andando por aí) ... nesse caso, revisando o Listagens de pacotes do Ubuntu.
Charles Duffy
1
@torayeff ... e novamente, se você não conseguir encontrar um pacote de pip do Ubuntu ou uma instalação fácil específica do Python 2.7, poderá instalar o pip manualmente, seguindo as instruções às quais vinculei minha resposta; apenas certifique-se de usar o python2.7executável ao seguir essas instruções.
Charles Duffy
189

Como alternativa, como pipele é escrito em python, você pode chamá-lo com a versão python para a qual deseja instalar o pacote:

python2.7 -m pip install foo
Turion
fonte
1
Como eu estou instalando com o pip em um ambiente virtual (mas preciso executá-lo no sistema python em algumas instâncias, com o PYTHONPATH definido - por exemplo, ao usar qualquer coisa que dependa do wxPython), esse é o comando que funcionou para mim.
Aaron D
6
MELHOR Solução para todos os problemas do Python2 e Python3!
Harsh Vardhan Ladha
9
Devo observar que a maneira correta de chamar um módulo em python é compython 2.7 -m pip install foo
llrs 22/02
2
Não posso votar suficientemente nesta resposta. Finalmente resolveu este problema doloroso no DietPi (framboesa distro)
Pitto
1
@Sergio Parece que o -m está no lugar errado para mim, acho que o comando deve ser mais comopy37 -m "location-of-pip" install numpy
JRH
53

Você pode executar o módulo pip para uma versão específica do python usando o python correspondente:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4
Tiago Coutinho
fonte
3
Vasculhei a Internet várias vezes, procurando por este comando. Eu acho que a maioria das pessoas usa um ambiente virtual para resolver esse problema, mas é uma estratégia muito mais viável para mim.
Dave Liu
E se eu estiver dentro do meu script python que está chamando pip install beautifulsoup4. Como posso ter certeza de que o script foi chamado com o sinalizador -m?
Ogen
Esta foi a peça final do meu quebra-cabeça, obrigado! pipe pip3ambos foram bloqueados para python3.X para mim, então eu tive que usar esse método como uma forma indireta de instalação de pip para python2.7
airdas
25

Você pode usar esta sintaxe

python_version -m pip install your_package

Por exemplo. Se você está executando o python3.5, nomeou-o como "python3" e deseja instalar o pacote numpy

python3 -m pip install numpy
Catbuilts
fonte
É como minha resposta, mas melhor, pois não precisa mexer nos caminhos do sistema.
Turion
Parece que agora seria a melhor resposta. Funcionou perfeito comigo também.
LogicOnAbstractions
18

No Windows, você pode executar o módulo pip mencionando a versão python (você precisa garantir que o iniciador esteja no seu caminho)

py -2 -m pip install pyfora
Mounica T
fonte
1
Thansk. Acordou no meu caso. Eu tenho a versão 3.4 e 3.7. Eu tive que correr py -3.7 -m pip instalar requirements.txt -r para usar o pip associado com python 3.7
rodrigorf
6

Como alternativa, se você deseja instalar uma versão específica do pacote com a versão específica do python, é assim que

sudo python2.7 -m pip install pyudev=0.16

se o "=" não funcionar, use ==

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

Requisito inválido: 'pyudev = 0,16' = não é um operador válido. Você quis dizer ==?

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

funciona bem

ravi.zombie
fonte
4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi
David McCorkle
fonte
1
Isso não funciona quando você tem várias instalações de python3. Eu tenho 3.4e 3.5, e não posso pip installnada para 3.4.
21417 By
3

Se você possui as versões 2.7 e 3.x do python instaladas, basta renomear o arquivo python exe da versão python 3.x para algo como - "python.exe" para "python3.exe". Agora você pode usar o pip para ambas as versões individualmente. Se você digitar normalmente "pip install", ela considerará a versão 2.7 por padrão. Se você deseja instalá-lo na versão 3.x, chame o comando como "python3 -m pip install".

Bhaskar Bhuyan
fonte
2

Para Python 3

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

Para Python 2

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

No Debian / Ubuntu, pipé o comando a ser usado na instalação de pacotes para o Python 2, enquanto pip3é o comando a ser usado na instalação de pacotes para o Python 3.

Gayan Weerakutti
fonte
esta resposta cai quando você tem python3.6 e python3.7 por exemplo. O pip3 instalará pacotes apenas para o python3 padrão.
muyustan 22/03
2

para python2 use:

py -2 -m pip install beautifulsoup4
amalik2205
fonte
1

Como em qualquer outro script python, você pode especificar a instalação do python com a qual deseja executá-lo. Você pode colocar isso no seu perfil de shell para salvar o alias. O $1refere-se ao primeiro argumento que você passa para o script.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"
RKelley
fonte
0

Eu tinha o Python 2.7 instalado via chocolatey no Windows e encontrado pip2.7.exeem C:\tools\python2\Scripts.

O uso desse executável em vez do pipcomando instalou o módulo correto para mim ( requestspara Python 2.7).

CodeManX
fonte
0

Eu enfrentei um problema semelhante com outro pacote chamado Twisted. Eu queria instalá-lo para o Python 2.7, mas ele só foi instalado para o Python 2.6 (versão padrão do sistema).

Fazer uma mudança simples funcionou para mim.

Ao adicionar o caminho do Python 2.7 à sua $PATHvariável, adicione-o à frente da seguinte PATH=/usr/local/bin:$PATHmaneira:, para que o sistema use essa versão.

Se você enfrentar mais problemas, poderá seguir esta postagem do blog que me ajudou - https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence -exatamente-para-centos-somente-máquina

Raji
fonte