TL; DR: Esta string $ PATH está invertida se eu estou tentando usar python 2.7 da versão instalada pelo homebrew?
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin
Eu usei brew install python
para colocar o python 2.7.13 no El Capitan (OS X 10.11), e as coisas estavam funcionando bem por um tempo. Então eu tentei implantar um venv, que foi para o lado, e acho que minha solução de problemas descobriu um problema mais profundo (ou vários). Meu objetivo é ter o Python 2.7.x instalado e funcionando além da instalação do OS X em Python. Eu também estou apontando para pip
e venv
, além de alguns outros módulos importados para serem instalados com o Python 2.7 instalado também. (Eu entendo mexer com o Python original do sistema pode causar problemas profundos e profundos - então eu gostaria de deixá-lo completamente intocado.)
$ brew info python
python: stable 3.6.5 (bottled), devel 3.7.0b3, HEAD [pinned at 2.7.13]
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/2.7.13 (6,337 files, 87.0MB) *
Built from source on 2017-02-01 at 19:23:01
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb
brew info python
me mostra que o python 2.7.13 está instalado e fixado. Ótimo. No entanto, se esse for o caso, por que which python
aponta para a versão instalada no sistema?
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Verificando $ PATH, parece que algo deu errado ...
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin
Portanto, meu $ PATH atual é ( <cr>
após :
para maior clareza):
- /Library/Frameworks/Python.framework/Versions/3.4/bin:
- /Library/Frameworks/Python.framework/Versions/2.7/bin:
- / usr / bin:
- / bin:
- / usr / sbin:
- / sbin:
- / usr / local / bin:
- / opt / X11 / bin:
- / usr / local / git / bin
A ordem correta do $ PATH deve ser
- / usr / local / bin:
- /Library/Frameworks/Python.framework/Versions/3.4/bin:
- /Library/Frameworks/Python.framework/Versions/2.7/bin:
- / usr / bin:
- / bin:
- / usr / sbin:
- / sbin:
- / opt / X11 / bin:
- / usr / local / git / bin
De acordo com esta página , eu preciso adicionar export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
ao meu .profile
, o que me dá três perguntas:
1. Preciso adicionar /usr/local/sbin
ao meu $ PATH?
2. Eu pensei que meu $ PATH persistiria através de reinicializações - estou errado?
3. Se eu precisar adicioná-lo a ~/.profile
, posso adicioná-lo a ~/.bash_profile
?
Finalmente, aqui está um dos erros que estou vendo agora:
$ vim peuler.py
Traceback (most recent call last):
File "<string>", line 9, in <module>
File "/Users/user/.vim/bundle/powerline/powerline/__init__.py", line 6, in <module>
import logging
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 26, in <module>
import sys, os, time, cStringIO, traceback, warnings, weakref, collections
ImportError: No module named time
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Unable to import powerline, is it installed?
Press ENTER or type command to continue
Para mim, isso indica que algo deu errado com a versão do Python instalada pelo sistema - é esse o caso? (Nenhum módulo chamado time
? Isso não pode ser bom ..) Posso apenas ripar todo o Python instalado em homebrew, garantir que a versão instalada do sistema operacional do Python seja pura e reinstalar tudo com o homebrew? ? ... ou o Python do nível do sistema está totalmente levantado?