Estou tentando executar o ipython do bash (versão 4.4.19 ) linha de comando .
Como desenvolvedor de Python, tenho várias instalações de ipython em várias versões em vários caminhos de virtualenv s e, portanto, é importante saber qual delas estou executando. Portanto, o $PATH é sempre alterado quando eu altero virtualenv , e esse seria um valor típico para PATH :
$ echo $PATH
/Users/jab/.virtualenvs/tools/bin:/Users/jab/bin:/Users/jab/src/git/hub/jab/bin:/usr/local/gnu:/bin:/usr/local/bin:/usr/bin
O detalhe importante é que a primeira entrada é " /Users/jab/.virtualenvs/tools/bin " e que o arquivo /Users/jab/.virtualenvs/tools/bin/ipython existe:
$ ls -l /Users/jab/.virtualenvs/tools/bin/ipython
-rwxr-xr-x 1 jab staff 252 May 11 15:18 /Users/jab/.virtualenvs/tools/bin/ipython
Como esperado, which diz que esse arquivo será executado como o comando " $ ipython "
$ which ipython
/Users/jab/.virtualenvs/tools/bin/ipython
$ $(which ipython) -c "import sys; print(sys.executable)"
/Users/jab/.virtualenvs/tools/bin/python
No entanto, esse não é realmente o caso e /usr/local/bin/ipython é executado em vez disso
$ ipython -c "import sys; print(sys.executable)"
/usr/local/bin/python3
Alguém pode explicar por que bash está ignorando meu $PATH e usando o executável "errado"? E o que eu preciso mudar (em my bashrc , ou no meu sistema ( macOS 10.12.3 )) para que os executáveis sejam escolhidos por bash na ordem determinada pelo meu $PATH .
Observação: isso não é uma duplicação O Bash não está encontrando um programa, mesmo que esteja no meu caminho , porque ele pergunta como o PATH trabalha para encontrar qualquer programa, enquanto esta pergunta não é por que o errado programa é encontrado.