Nichtübereinstimmung zwischen sys.executable und sys.version in Python
Es sind zwei Python-Interpreter installiert:
[user@localhost ~]$ /usr/bin/python -V && /usr/local/bin/python -V
Python 2.4.3
Python 2.7.6
Sudo ändert sichPATH
Für jeden Befehl wird wie folgt ausgeführt:
[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
Ich führe ein Testskript aus:
[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)]
und holen Sie sich den Pfad zu Python 2.4.3 insys.executable
und Version 2.7.6 berichtet insys.version
. Deutlichsys.executable
undsys.version
nicht übereinstimmen. Unter Berücksichtigung, wie sudo PATH ändert, kann ich den Wert von verstehensys.executable
. Aber warum?sys.version
Bericht Version 2.7.6 und nicht Version 2.4.3, die übereinstimmen würdeusr/bin/python
Pfad gemeldet vonsys.executable
?
Dies ist eine Fortsetzung meiner FrageSudo ändert PATH, führt aber dieselbe Binärdatei aus