Problema de instalação do Python no Mac OS X

2

Eu tenho usado o python padrão que vem com o OS X Lion (2.7.2), mas eu queria construir uma versão UCS-4 para lidar melhor com caracteres unicode de 4 bytes.

Eu já tinha instalado pip e pacotes como pytz, virtualenv e virtualenvwrapper, etc., e estes são instalados em /Library/Python/2.7/site-packages . Meu $PATH é /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin .

Para construir uma nova versão do python na máquina (fora de qualquer ambiente virtual específico do projeto, que virá mais tarde), segui as instruções em este artigo e gerenciado para construí-lo em /usr/local/bin . O problema é que quando lancei uma nova janela bash, recebi o seguinte erro virtualenvwrapper:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.

As instruções dizem para mover /usr/local/bin para o topo do arquivo /etc/paths , e desde então eu notei alguns problemas estranhos. Instalei o pip em /usr/local/bin e agora presumo que, como estou trabalhando em /usr/local/bin , e os pacotes de site recém-instalados do python agora estão em /usr/local/lib/python2.7/site-packages , quando eu faço pip freeze , ele deve estar vazio nada está instalado lá ainda. No entanto, pip freeze ainda relata as coisas instaladas na antiga pasta de pacotes de sites (OS X). Veja algumas informações após a criação:

$ which python
/usr/local/bin/python
$ which pip
/usr/local/bin/pip
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Quando eu desinstalo um pacote python com pip, ele o remove da pasta antiga do site-packages conforme o esperado. Quando eu o instalo novamente, em vez de instalá-lo em /usr/local/lib/python2.7/site-packages , ele o instala em /Library/Python/2.7/site-packages (verificado ao tentar instalá-lo novamente e receber Requirement already satisfied (use --upgrade to upgrade): pytz in /Library/Python/2.7/site-packages ). Como está obtendo esse caminho para a pasta antiga de pacotes de sites? Por que não instala no local correto para a instalação do python que está usando?

Estou recebendo vários outros problemas desde a promoção de /usr/local/bin , mas acho que, se eu entender isso, poderei chegar a algum lugar.

Alguém pode ver o que está acontecendo? Se você precisar de mais informações, terei prazer em fornecê-lo.

    
por Michael Waterfall 07.09.2012 / 19:00

1 resposta

0

Descobrimos que o shebang em /usr/local/bin/pip era #!/usr/bin/python . Então pip estava usando o python errado e, portanto, a pasta errada de pacotes de sites.

Acabei limpando muito do que eu fiz e usando o pythonbrew para instalar um novo python e então começar do zero com isso.

    
por 09.09.2012 / 15:41