O Python tem um sistema de gerenciamento de pacotes / módulos, semelhante ao Ruby onde você pode fazer rubygems gem install packagename
?
Em Instalando módulos Python , apenas vejo referências a python setup.py install
, mas isso exige que você encontre o pacote primeiro.
Respostas:
Progresso recente
Março de 2014 : Boas notícias! O Python 3.4 é fornecido com o Pip. Pip é o gerente de pacotes padrão de fato do Python. Você pode instalar um pacote como este:
Wahey! Este é o melhor recurso de qualquer versão do Python. Torna a riqueza de bibliotecas da comunidade acessível a todos. Os iniciantes não são mais excluídos do uso de bibliotecas da comunidade pela dificuldade proibitiva de configuração.
No entanto , ainda existem várias frustrações excelentes com a experiência de empacotamento do Python. Cumulativamente, eles tornam o Python muito hostil para iniciantes. Além disso, a longa história de negligência (ou seja, não remessa com um gerenciador de pacotes por 14 anos do Python 2.0 ao Python 3.3) prejudicou a comunidade. Eu descrevo os dois abaixo.
Frustrações extraordinárias
É importante entender que, embora usuários experientes possam solucionar essas frustrações, eles são barreiras significativas para pessoas novas no Python. De fato, a dificuldade e a hostilidade geral do usuário provavelmente impedirão muitos deles.
O site do PyPI é contra-útil
Todo idioma com um gerenciador de pacotes possui um repositório oficial (ou quase oficial) para a comunidade fazer o download e publicar pacotes. Python possui o Índice de Pacotes Python, PyPI. https://pypi.python.org/pypi
Vamos comparar suas páginas com as do RubyGems e Npm (o gerenciador de pacotes Node).
rails
express
simplejson
Você verá as páginas RubyGems e Npm, ambas com uma descrição de uma linha do pacote e instruções grandes e amigáveis sobre como instalá-lo.
Enquanto isso, ai de qualquer usuário infeliz do Python que navegue ingenuamente para o PyPI. Em https://pypi.python.org/pypi/simplejson/ , eles não encontrarão essas instruções úteis. No entanto, existe um grande link verde 'Download'. Não é razoável segui-lo. Aha, eles clicam! O navegador deles baixa um
.tar.gz
arquivo. Muitos usuários do Windows nem conseguem abri-lo, mas, se perseverarem, poderão extraí-lo e, em seguida, executarsetup.py
e eventualmente com a ajuda do Googlesetup.py install
. Alguns vão desistir e reinventar a roda ..Claro, tudo isso está errado. O mais fácil maneira fácil de instalar um pacote é com um comando Pip. Mas o PyPI nem mencionou Pip. Em vez disso, levou-os a um caminho arcaico e tedioso.
Erro: Não foi possível encontrar vcvarsall.bat
Numpy é uma das bibliotecas mais populares do Python. Tente instalá-lo com o Pip, você recebe esta mensagem de erro enigmática:
Tentando corrigir essa é uma das perguntas mais populares sobre o estouro de pilha: " erro: não foi possível encontrar vcvarsall.bat "
Poucas pessoas conseguem.
Para comparação, na mesma situação, Ruby imprime esta mensagem, que explica o que está acontecendo e como corrigi-lo:
Publicar pacotes é difícil
Ruby e Nodejs são fornecidos com gerenciadores de pacotes com todos os recursos, Gem (desde 2007) e Npm (desde 2011), e nutriram comunidades de compartilhamento centradas no GitHub. O Npm facilita a publicação de pacotes , pois já possui pacotes de 64k . RubyGems lista pacotes de 72k . O venerável índice de pacotes Python lista apenas 41k .
História
Seguindo o lema " baterias incluídas ", o Python foi enviado sem um gerenciador de pacotes até 2014.
Até Pip, o padrão de fato era um comando
easy_install
. Foi lamentavelmente inadequado. O comando não era para desinstalar pacotes.Pip foi uma grande melhoria. Tinha a maioria dos recursos da Ruby Gem. Infelizmente, Pip era - até recentemente - ironicamente difícil de instalar. De fato, o problema continua sendo uma das principais perguntas do Python no Stack Overflow: " Como instalo o pip no Windows? "
fonte
gem install X
parece funcionar em todas as plataformas. Então, como eles gerenciaram isso para gemas que exigem compilação de código C no Windows?O Python Package Index (PyPI) parece ser padrão:
pip install MyProject
pip install --upgrade MyProject
pip install MyProject==1.0
Você pode instalar o gerenciador de pacotes da seguinte maneira:
Referências:
fonte
E apenas para fornecer um contraste, há também pip .
fonte
Como desenvolvedor de Ruby e Perl e aprendiz de Python, não achei easy_install ou pip o equivalente a RubyGems ou CPAN.
Costumo manter meus sistemas de desenvolvimento executando as versões mais recentes dos módulos à medida que os desenvolvedores os atualizam e congelar meus sistemas de produção em versões definidas. Tanto o RubyGems quanto o CPAN facilitam a localização de módulos, listando o que está disponível, instale e atualize-os posteriormente individualmente ou em massa, se desejado.
easy_install e pip facilitam a instalação de um módulo UMA vez que o localizei por meio de uma pesquisa no navegador ou aprendi sobre ele por outros meios, mas eles não me dizem o que está disponível. Posso nomear explicitamente o módulo a ser atualizado, mas os aplicativos não me dizem o que foi atualizado nem atualizarão tudo em massa, se eu quiser.
Portanto, a funcionalidade básica está presente no pip e no easy_install, mas há alguns recursos que eu gostaria de ver que os tornariam mais amigáveis e fáceis de usar, além do CPAN e do RubyGems.
fonte
Existem pelo menos dois, easy_install e seu pip sucessor .
fonte
A partir do final de 2014, a distribuição Anaconda Python da Continuum Analytics com o gerenciador de pacotes conda deve ser considerada. Ele resolve a maioria dos problemas sérios que as pessoas enfrentam com o Python em geral (gerenciando diferentes versões do Python, atualizando versões do Python, gerenciamento de pacotes, ambientes virtuais, compatibilidade com Windows / Mac) em um download coeso.
Ele permite fazer praticamente tudo o que você poderia querer com o Python sem precisar alterar o sistema. Minha próxima solução preferida é o pip + virtualenv, mas você precisa instalar o virtualenv no Python do sistema (e o Python do sistema pode não ser a versão desejada) ou criar a partir da fonte . O Anaconda torna todo esse processo o clique de um botão, além de adicionar vários outros recursos.
fonte
Isso seria fácil de instalar .
fonte
easy_install
, verifique primeiro as datas. Esse foi um conselho válido quando foi dado quase 7 anos atrás . Eu não acho que em nós, respondedores, vamos revisitar isso regularmente para atualizar, portanto a redução de votos é uma bobagem.Chama-se setuptools. Você o executa com o comando "easy_install".
Você pode encontrar o diretório em http://pypi.python.org/
fonte
Não vejo o MacPorts nem o Homebrew mencionados em outras respostas aqui, mas como os vejo mencionados em outras partes do Stack Overflow para questões relacionadas, adicionarei meus próprios US $ 0,02 que muitas pessoas parecem considerar o MacPorts como não apenas um pacote gerenciador de pacotes em geral (até hoje eles listam 16311 pacotes / portas, 2931 correspondentes a "python", embora apenas para Macs), mas também como um gerenciador de pacotes decente (talvez melhor) para pacotes / módulos Python:
Questão
"... qual é o método usado pelos desenvolvedores de python para gerenciar seus módulos?"
Respostas
"O MacPorts é perfeito para Python no Mac".
"A melhor maneira é usar o MacPorts."
"Eu prefiro MacPorts ..."
"Com a minha configuração do MacPorts ..."
"Eu uso o MacPorts para instalar ... módulos de terceiros rastreados pelo MacPorts"
SciPy
"Macs (ao contrário do Linux) não vêm com um gerenciador de pacotes, mas existem alguns gerenciadores de pacotes populares que você pode instalar. Macports ..."
Ainda estou discutindo se devo ou não usar o MacPorts, mas, no momento, estou inclinado nessa direção.
fonte
pip install <your_favorite_package>
No Windows, instale http://chocolatey.org/ e
Abra uma nova janela de cmd com o PATH atualizado. Em seguida, faça
Depois disso você pode
fonte
Como ninguém mencionou o pipenv aqui, eu gostaria de descrever meus pontos de vista por que todos deveriam usá-lo para gerenciar pacotes python.
Como o @ColonelPanic mencionou, há vários problemas com o Python Package Index e também com o pip e o virtualenv .
O Pipenv resolve a maioria dos problemas com o pip e fornece recursos adicionais também.
Recursos do Pipenv
O Pipenv pretende substituir o pip e o virtualenv, o que significa que o pipenv criará automaticamente um ambiente virtual separado para cada projeto, evitando conflitos entre diferentes versões python / versões de pacotes para diferentes projetos.
Se você já trabalhou em projetos python antes, perceberia que esses recursos tornam mais fácil o gerenciamento de pacotes.
Outros comandos
check
verifica vulnerabilidades de segurança e afirma que os requisitos do PEP 508 estão sendo atendidos pelo ambiente atual. ( que eu acho que é um ótimo recurso, especialmente depois disso - pacotes maliciosos no PyPi )graph
mostrará um gráfico de dependência, de suas dependências instaladas.Você pode ler mais sobre isso aqui - Pipenv .
Instalação
Você pode encontrar a documentação de instalação aqui
PS: Se você gostou de trabalhar com as solicitações de pacote Python , ficaria satisfeito em saber que o pipenv é do mesmo desenvolvedor Kenneth Reitz
fonte
Em 2019, a poesia é o gerenciador de pacotes e dependências que você procura.
https://github.com/sdispater/poetry#why
É moderno, simples e confiável.
fonte
Poesia é o que você está procurando. Ele cuida do gerenciamento de dependências, ambientes virtuais e execução.
fonte