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.