Pergunta

Estou começando a aprender python e amá-la. Eu trabalho em um Mac, principalmente, bem como Linux. Eu estou achando que no Linux (Ubuntu 9.04 principalmente) quando eu instalar um módulo python usando apt-get funciona bem. I pode importá-lo sem problemas.

No Mac, eu estou acostumado a usar Macports para instalar todo o material UNIXy. No entanto, eu estou achando que a maioria dos módulos python eu instalar com ele não é visto pelos python. Eu passei algum tempo a brincar com as configurações de PATH e usando python_select. Nada realmente funcionou e neste momento eu realmente não estou entendendo, ao invés disso eu só estou bisbilhotando.

Tenho a impressão de que Macports não é universalmente amada pela gestão de módulos python. Eu gostaria de começar de novo usando uma abordagem (se essa é a palavra certa) mais "aceito".

Então, eu queria saber, qual é o método que desenvolvedores Mac python usar para gerenciar seus módulos?

perguntas Bônus:

Você usa python, da Apple, ou alguma outra versão? Você compilar tudo a partir da fonte ou há uma manjedoura pacote que funciona bem (Fink?).

Foi útil?

Solução

A forma mais popular para gerenciar pacotes python (se você não estiver usando o gerenciador de pacotes do sistema) é usar setuptools e easy_install. Ele provavelmente já está instalado em seu sistema. Usá-lo como este:

easy_install django

easy_install usos Python Package Index que é um recurso incrível para desenvolvedores python. Dê uma olhada ao redor para ver o que estão disponíveis pacotes.

A melhor opção é pip , que está ganhando força, como ele tenta corrigir muitos dos problemas associado com easy_install. Pip usa o mesmo repositório de pacotes como easy_install, ele simplesmente funciona melhor. Realmente o único uso do tempo necessidade de usar easy_install é para este comando:

easy_install pip

Depois disso, use:

pip install django

Em algum momento você provavelmente vai querer aprender um pouco sobre virtualenv . Se você faz um monte de desenvolvimento python em projetos com conflitantes requisitos do pacote, virtualenv é uma dádiva de Deus. Ele irá permitir que você tenha completamente diferentes versões de vários pacotes, e alternar entre elas facilmente dependendo suas necessidades.

Com relação que python para uso, furando com python da Apple vai dar-lhe os menos dores de cabeça, mas se você precisar de uma versão mais recente (Leopard é 2.5.1 creio eu), eu iria com o MacPorts python 2.6.

Outras dicas

A sua pergunta já tem três anos e há alguns detalhes não abrangidos em outras respostas:

A maioria das pessoas que eu conheço uso HomeBrew ou MacPorts , eu prefiro MacPorts por causa de seu corte limpo do que é um ambiente padrão do Mac OS X e minha configuração de desenvolvimento. Basta mover o seu pasta / opt e testar seus pacotes com um ambiente Python usuário normal

MacPorts só é portátil dentro de Mac, mas com easy_install ou pip você vai aprender como configurar seu ambiente em qualquer plataforma (Win / Mac / Linux / BSD ...). Além disso, será sempre mais atualizado e com mais pacotes

Eu, pessoalmente, deixar MacPorts lidar com 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 trabalho pesado de módulos com muitas dependências binárias. Não há nenhuma maneira que eu iria construir minhas ligações Qt (PySide) com easy_install ou pip. Qt é enorme e tem um monte de compilação. Assim que você quer um pacote de Python que precisa de uma biblioteca usada por programas não Python, para tentar evitar easy_install ou pip

Em algum momento você vai descobrir que existem alguns pacotes que faltam dentro MacPorts. Eu não acredito que MacPorts nunca vai dar-lhe a todo CheeseShop . Por exemplo, recentemente eu precisava do Elixir módulo, mas MacPorts apenas ofertas py25-elixir e py26-elixir, nenhuma versão py27. Em casos como estes que você tem:

pip-2.7 instalar --user elixir

(certifique-se que você sempre digite PIP (versão))

Isso vai construir uma biblioteca extra Python em seu diretório home. Sim, Python vai trabalhar com mais de um local biblioteca: uma controlada por MacPorts e um usuário de um local para tudo faltando dentro MacPorts

.

Agora aviso de que sou a favor pip sobre easy_install. Há uma boa razão pela qual você deve evitar setuptools e easy_install. Aqui está uma boa explicação e eu tento manter longe deles. Um recurso muito útil de pip é dando-lhe uma lista de todos os módulos (ao longo de suas versões) que instalou com MacPorts, easy_install e pip-se:

pip-2,7 congelamento

Se você já começou a usar easy_install, não se preocupe, pip pode reconhecer tudo já feito por easy_install e até mesmo atualizar os pacotes instalados com ele.

Se você é um desenvolvedor de manter um olho em virtualenv para controlar diferentes configurações e combinações de versões de módulo. Outras respostas mencioná-lo já, o que não é mencionado até agora é o Tox módulo, uma ferramenta para testar que o seu pacote instala corretamente com diferentes versões do Python.

Embora eu geralmente não têm conflitos de versão, eu gostaria de ter virtualenv para criar um ambiente limpo e obter uma visão clara dos meus pacotes de dependências. Dessa forma, eu nunca se esqueça quaisquer dependências em meu setup.py

Se você vai para MacPorts estar ciente de que várias versões do mesmo pacote não são selecionados mais parecido com o estilo Debian velho com um pacote python_select adicional (ele ainda está lá para compatibilidade). Agora você tem o comando de seleção para escolher qual versão Python será usado (você pode até escolher Apple instalado ones):

$  port select python
Available versions for python:
    none
    python25-apple
    python26-apple
    python27 (active)
    python27-apple
    python32

$ port select python python32

Adicionar toxicológico em cima dela e seus programas deve ser realmente portátil

Por favor, veja Python OS X ambiente de desenvolvimento . A melhor maneira é usar MacPorts . Baixe e instale o MacPorts, em seguida, instalar Python via MacPorts, digitando os seguintes comandos no Terminal:

sudo port install python26 python_select
sudo port select --set python python26

ou

sudo port install python30 python_select
sudo port select --set python python30

Use o primeiro conjunto de comandos para instalar o Python 2.6 e o ??segundo conjunto para instalar o Python 3.0. Em seguida, use:

sudo port install py26-packagename

ou

sudo port install py30-packagename

Nos comandos acima, substitua packagename com o nome do pacote, por exemplo:

sudo port install py26-setuptools

Estes comandos irá instalar automaticamente o pacote (e suas dependências) para a determinada versão Python.

Para obter uma lista completa de pacotes disponíveis para Python, digite:

port list | grep py26-

ou

port list | grep py30-

Qual comando que você usa depende de qual versão do Python que você escolheu para instalar.

Eu uso MacPorts para instalar Python e quaisquer módulos de terceiros rastreadas por MacPorts em /opt/local, e eu instalar os módulos instalados manualmente (aqueles que não nos MacPorts repositório) em /usr/local, e isso nunca causou quaisquer problemas. Eu acho que você pode ser confundido quanto ao uso de certos MacPorts scripts e variáveis ??de ambiente.

MacPorts python_select é usado para selecionar a versão "atual" do Python, mas não tem nada a ver com módulos. Isto permite-lhe, por exemplo, instalar os dois Python 2.5 e Python 2.6 usando MacPorts, e alternar entre instalações.

As variáveis ??de ambiente $PATH não afetar o que módulos Python são carregados. $PYTHONPATH é o que você está procurando. $PYTHONPATH deve apontar para diretórios contendo módulos Python que deseja carregar. No meu caso, minha variável $PYTHONPATH contém /usr/local/lib/python26/site-packages. Se você usar Python MacPorts, ele configura os outros diretórios apropriados para você, então você só precisa adicionar adicionais caminhos para $PYTHONPATH. Mas, novamente, $PATH não é usado em tudo quando pesquisas Python para módulos de ter instalado.

$PATH é usado para localizar arquivos executáveis, então se você instalar o Python MacPorts, certifique-se /opt/local/bin está na sua $PATH.

Não há nada de errado em usar uma instalação MacPorts Python. Se você estiver instalando módulos python de MacPorts mas depois não vê-los, isso significa que provavelmente você não está invocando os MacPorts python você instalou a. Em uma casca de terminal, você pode usar caminhos absolutos para invocar os vários Pythons que podem ser instalados. Por exemplo:

$ /usr/bin/python2.5         # Apple-supplied 2.5 (Leopard)
$ /opt/local/bin/python2.5   # MacPorts 2.5
$ /opt/local/bin/python2.6   # MacPorts 2.6
$ /usr/local/bin/python2.6   # python.org (MacPython) 2.6
$ /usr/local/bin/python3.1   # python.org (MacPython) 3.1

Para obter o python direito por padrão exige assegurar a sua $ PATH shell está definida corretamente para garantir que o executável direito é encontrado em primeiro lugar. Outra solução é definir aliases de shell para os diversos pítons.

instalação

A python.org (MacPython) é bom, também, como já foi sugerido. easy_install pode ajudar, mas, mais uma vez, porque cada instância Python pode ter o seu próprio comando easy_install, certifique-se que você está invocando o easy_install direita.

Se você usar Python a partir MacPorts, ele tem seu próprio easy_install localizado em: /opt/local/bin/easy_install-2.6 (para py26, que é). Não é o mesmo que simplesmente chamando easy_install diretamente, mesmo se você usou python_select para mudar o seu comando python padrão.

Você já olhou para easy_install em tudo? Não vai sincronizar seus MacPorts ou qualquer coisa assim, mas ele vai baixar automaticamente o pacote mais recente e todas as dependências necessárias, i.

easy_install nose

para o pacote de testes de unidade nariz, ou

easy_install trac

para o rastreador trac bug.

Há um pouco mais informações em sua página EasyInstall também.

Para instalações MacPython, eu encontrei uma solução eficaz para corrigir o problema com setuptools (easy_install) neste post:

http://droidism.com/getting -Running-com-django-and-MacPython-26-on-leopardo

Uma dica útil inclui descobrir qual versão do python é ativo no terminal:

which python

Quando você instalar módulos com MacPorts, ele não vai para a versão da Apple de Python. Em vez disso esses módulos estão instalados para a versão MacPorts de Python selecionado.

Você pode alterar a versão do Python é usado por padrão usando uma porta mac chamado python_select . instruções aqui .

Além disso, há easy_install . Que irá usar python para instalar módulos python.

Você já pode ter pip3 pré-instalado, assim apenas experimentá-lo!

Em relação a versão python para usar, o Mac OS Normalmente enviado uma versão antiga do python. É uma boa idéia para atualizar para uma versão mais recente. Você pode baixar um .dmg de 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-/

Eu uso easy_install com Python, da Apple, e funciona como um encanto.

Diretamente instalar um dos pacotes Fink (Django 1.6 a partir de 2013-Nov)

fink install django-py27
fink install django-py33

Ou criar-se um virtualenv:

fink install virtualenv-py27
virtualenv django-env
source django-env/bin/activate
pip install django
deactivate # when you are done

Ou use fink Django, mais qualquer outro pip pacotes instalados em um virtualenv

fink install django-py27
fink install virtualenv-py27
virtualenv django-env --system-site-packages
source django-env/bin/activate
# django already installed
pip install django-analytical # or anything else you might want
deactivate # back to your normally scheduled programming
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top