Incompatibilidade entre sys.executable e sys.version no Python
Existem dois intérpretes Python instalados:
[user@localhost ~]$ /usr/bin/python -V && /usr/local/bin/python -V
Python 2.4.3
Python 2.7.6
Mudanças no SudoPATH
para cada comando, é executado da seguinte maneira:
[user@localhost ~]$ env | grep PATH && sudo env | grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user/bin
PATH=/usr/bin:/bin
Eu executo um script de teste:
[user@localhost ~]$ cat what_python.py
#!/usr/bin/env python
import sys
print sys.executable
print sys.version
[user@localhost ~]$ sudo python what_python.py
/usr/bin/python
2.7.6 (default, Feb 27 2014, 17:05:07)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)]
e encontre o caminho para o Python 2.4.3 nosys.executable
e versão 2.7.6 relatada emsys.version
. Claramentesys.executable
esys.version
não combina. Tendo em conta como o sudo modifica o PATH, posso entender o valor desys.executable
. No entanto, por quesys.version
relatório versão 2.7.6 e não versão 2.4.3, que corresponderiausr/bin/python
caminho relatado porsys.executable
?
Este é um seguimento da minha perguntaSudo altera PATH, mas executa o mesmo binário