Estou começando a aprender python e adorando. Eu trabalho principalmente em um Mac, bem como em Linux. Estou descobrindo que no Linux (Ubuntu 9.04 principalmente) quando instalo um módulo python usando o apt-get, ele funciona bem. Eu posso importá-lo sem problemas.
No Mac, estou acostumado a usar o Macports para instalar todas as coisas do Unixy. No entanto, estou descobrindo que a maioria dos módulos python que instalo com ele não está sendo vista pelo python. Passei algum tempo brincando com as configurações PATH e usando python_select. Nada realmente funcionou e, neste momento, eu realmente não estou entendendo, apenas estou bisbilhotando.
Tenho a impressão de que o Macports não é universalmente amado por gerenciar módulos python. Eu gostaria de começar de novo usando uma abordagem mais "aceita" (se essa é a palavra certa).
Então, eu estava pensando, qual é o método que os desenvolvedores de python Mac usam para gerenciar seus módulos?
Perguntas sobre bônus:
Você usa o python da Apple ou alguma outra versão? Você compila tudo da fonte ou existe um gerenciador de pacotes que funciona bem (Fink?).
Respostas:
A maneira mais popular de gerenciar pacotes python (se você não estiver usando o gerenciador de pacotes do sistema) é usar setuptools e easy_install. Provavelmente já está instalado no seu sistema. Use-o assim:
easy_install usa o Índice de Pacotes Python que é um recurso incrível para desenvolvedores de python. Dê uma olhada ao redor para ver quais pacotes estão disponíveis.
Uma opção melhor é o pip , que está ganhando força, pois tenta corrigir muitos dos problemas associados ao easy_install. O Pip usa o mesmo repositório de pacotes que o easy_install, ele funciona melhor. Realmente, o único momento em que você precisa usar o easy_install é para este comando:
Depois disso, use:
Em algum momento, você provavelmente desejará aprender um pouco sobre o virtualenv . Se você faz muito desenvolvimento python em projetos com requisitos de pacotes conflitantes, o virtualenv é uma dádiva de Deus. Ele permitirá que você tenha versões completamente diferentes de vários pacotes e alterne entre eles facilmente, dependendo de suas necessidades.
Em relação a qual python usar, ficar com o python da Apple causará menos dores de cabeça, mas se você precisar de uma versão mais recente (o Leopard é 2.5.1, eu acredito), eu usaria o macports python 2.6.
fonte
Sua pergunta já tem três anos e há alguns detalhes não abordados em outras respostas:
A maioria das pessoas que eu conheço usa o HomeBrew ou o MacPorts , eu prefiro o MacPorts por causa do seu corte limpo do ambiente padrão do Mac OS X e da minha configuração de desenvolvimento. Apenas mova sua pasta / opt e teste seus pacotes com um ambiente Python de usuário normal
O MacPorts é apenas portátil no Mac, mas com o easy_install ou o pip, você aprenderá como configurar seu ambiente em qualquer plataforma (Win / Mac / Linux / Bsd ...). Além disso, será sempre mais atualizado e com mais pacotes
Pessoalmente, deixei o MacPorts manipular meus módulos Python para manter tudo atualizado. Como qualquer outro gerenciador de pacotes de alto nível (ou seja: apt-get), é muito melhor para o levantamento pesado de módulos com muitas dependências binárias. Não há como construir minhas ligações Qt (PySide) com easy_install ou pip. O Qt é enorme e leva muito tempo para compilar. Assim que você desejar um pacote Python que precise de uma biblioteca usada por programas que não sejam Python, tente evitar easy_install ou pip
Em algum momento, você encontrará alguns pacotes ausentes no MacPorts. Não acredito que o MacPorts possa lhe dar toda a CheeseShop . Por exemplo, recentemente precisei do módulo Elixir , mas o MacPorts oferece apenas py25-elixir e py26-elixir, nenhuma versão py27. Em casos como esses, você tem:
(certifique-se de sempre digitar pip- (versão))
Isso criará uma biblioteca Python extra em seu diretório pessoal. Sim, o Python funcionará com mais de um local da biblioteca: um controlado pelo MacPorts e um local do usuário para tudo que estiver faltando no MacPorts.
Agora observe que eu sou a favor do pip sobre o easy_install. Há um bom motivo para você evitar o setuptools e o easy_install. Aqui está uma boa explicação e eu tento me afastar deles. Um recurso muito útil do pip é fornecer uma lista de todos os módulos (ao longo de suas versões) que você instalou com o MacPorts, easy_install e o próprio pip:
Se você já começou a usar o easy_install, não se preocupe, o pip pode reconhecer tudo o que já foi feito pelo easy_install e até atualizar os pacotes instalados com ele.
Se você é um desenvolvedor, fique de olho no virtualenv para controlar diferentes configurações e combinações de versões de módulos. Outras respostas já mencionam, o que não foi mencionado até agora é o módulo Tox , uma ferramenta para testar se o seu pacote instala corretamente com diferentes versões do Python.
Embora eu normalmente não tenha conflitos de versão, gosto de ter o virtualenv para configurar um ambiente limpo e obter uma visão clara das dependências dos meus pacotes. Dessa forma, nunca esqueço nenhuma dependência em meu setup.py
Se você optar pelo MacPorts, esteja ciente de que várias versões do mesmo pacote não são mais selecionadas como o antigo estilo Debian com um pacote python_select extra (ele ainda existe para compatibilidade). Agora você tem o comando select para escolher qual versão do Python será usada (você pode até selecionar as versões instaladas pela Apple):
Adicione tox em cima disso e seus programas devem ser realmente portáteis
fonte
Por favor, veja ambiente de desenvolvimento Python OS X . A melhor maneira é usar o MacPorts . Baixe e instale o MacPorts e, em seguida, instale o Python via MacPorts digitando os seguintes comandos no Terminal:
OU
Use o primeiro conjunto de comandos para instalar o Python 2.6 e o segundo conjunto para instalar o Python 3.0. Então use:
OU
Nos comandos acima, substitua packagename pelo nome do pacote, por exemplo:
Esses comandos instalarão automaticamente o pacote (e suas dependências) para a versão Python fornecida.
Para obter uma lista completa dos pacotes disponíveis para Python, digite:
OU
O comando que você usa depende da versão do Python que você escolheu instalar.
fonte
sudo python_select python30
foi substituído porsudo port select --set python python30
.Eu uso o MacPorts para instalar o Python e quaisquer módulos de terceiros rastreados pelo MacPorts
/opt/local
e instalo quaisquer módulos instalados manualmente (aqueles que não estão no repositório do MacPorts)/usr/local
, e isso nunca causou problemas. Eu acho que você pode estar confuso quanto ao uso de certos scripts e variáveis de ambiente do MacPorts.O MacPorts
python_select
é usado para selecionar a versão "atual" do Python, mas não tem nada a ver com módulos. Isso permite, por exemplo, instalar o Python 2.5 e o Python 2.6 usando o MacPorts e alternar entre as instalações.As
$PATH
variáveis de ambiente não afetam quais módulos Python são carregados.$PYTHONPATH
é o que você está procurando.$PYTHONPATH
deve apontar para diretórios que contêm módulos Python que você deseja carregar. No meu caso, minha$PYTHONPATH
variável contém/usr/local/lib/python26/site-packages
. Se você usa o Python do MacPorts, ele configura os outros diretórios adequados para você, então você só precisa adicionar caminhos adicionais$PYTHONPATH
. Mas, novamente,$PATH
não é usado quando o Python procura por módulos que você instalou.$PATH
é usado para encontrar executáveis, portanto, se você instalar o Python do MacPorts, verifique se/opt/local/bin
está no seu$PATH
.fonte
Não há nada de errado em usar uma instalação MacPorts Python. Se você estiver instalando módulos python do MacPorts, mas não os estiver vendo, isso provavelmente significa que você não está chamando o python do MacPorts no qual instalou. Em um shell de terminal, você pode usar caminhos absolutos para chamar os vários Pythons que podem ser instalados. Por exemplo:
Para obter o python correto por padrão, é necessário garantir que seu shell $ PATH esteja definido corretamente para garantir que o executável correto seja encontrado primeiro. Outra solução é definir aliases de shell para os vários pitães.
Uma instalação do python.org (MacPython) também é boa, como outros sugeriram.
easy_install
pode ajudar, mas, novamente, como cada instância do Python pode ter seu próprioeasy_install
comando, verifique se você está chamando o certoeasy_install
.fonte
Se você usa o Python do MacPorts, ele possui seu próprio easy_install localizado em: /opt/local/bin/easy_install-2.6 (para py26, é isso). Não é o mesmo que simplesmente chamar easy_install diretamente, mesmo se você usou python_select para alterar seu comando python padrão.
fonte
sudo port install py2.6-pip
obter pip.Você já olhou para o easy_install ? Ele não sincroniza seus macports ou algo assim, mas baixa automaticamente o pacote mais recente e todas as dependências necessárias, como por exemplo
para o pacote de testes da unidade nasal, ou
para o
trac
rastreador de erros.Também há um pouco mais de informações na página do EasyInstall .
fonte
Para instalações MacPython, encontrei uma solução eficaz para corrigir o problema com o setuptools (easy_install) nesta postagem do blog:
http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard
Uma dica útil inclui descobrir qual versão do python está ativa no terminal:
fonte
Quando você instala módulos com o MacPorts, ele não entra na versão do Python da Apple. Em vez disso, esses módulos são instalados na versão MacPorts do Python selecionada.
Você pode alterar qual versão do Python é usada por padrão usando uma porta mac chamada python_select . instruções aqui .
Além disso, há o easy_install . O qual usará o python para instalar os módulos python.
fonte
python_select
agora está obsoleto, veja as respostas mais recentes.Você já pode ter
pip3
pré-instalado, então tente!fonte
Em relação a qual versão do python usar, o Mac OS geralmente envia uma versão antiga do python. É uma boa ideia atualizar para uma versão mais recente. Você pode baixar um arquivo .dmg em http://www.python.org/download/ . Se você fizer isso, lembre-se de atualizar o caminho. Você pode encontrar os comandos exatos aqui http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/
fonte
Eu uso o easy_install com o Python da Apple e funciona como um encanto.
fonte
Instale diretamente um dos pacotes fink (Django 1.6 a partir de 2013-novembro)
Ou crie um virtualenv:
Ou use o fink django mais quaisquer outros pacotes instalados do pip em um virtualenv
fonte