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


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.


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

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

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

É 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

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


4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi

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".


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.


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


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"

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).


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.