¿Por qué mi 'sys.path' de Python es diferente para cada herramienta que uso para ejecutar mi código?

Estoy confundido acerca de las reglas usadas para construir mi Pythonsys.path. Entiendo que elprimera entrada sera "el directorio que contiene la secuencia de comandos que se utilizó para invocar al intérprete de Python", o una cadena vacía si se invocó de forma interactiva, y que los últimos serán entradas basadas en la instalación de Python. Pero estoy confundido acerca de lo que está pasando entre estos dos conjuntos de entradas, en particular, cómo se relacionan con mi PYTHONPATH.

Cuando yo (A) ejecuto un script que imprime las entradas de misys.path utilizandopython test.py en el símbolo del sistema en el../scriptpath directorio, me sale:

/Users/Rax/Documents/Projects/scriptpath
... (my system PYTHONPATH, as configured in .bash_profile)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

que no es lo mismo que lo que recibo cuando (B) corroimport test mientras en../scriptpath en el shell de IPython

(empty string)
/usr/local/bin
... (my system PYTHONPATH)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)
/Library/Python/2.7/site-packages/IPython/extensions

o (C) en una cáscara de Python

(empty string)
... (my system PYTHONPATH)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

mientras, (D) cuando corrotest.py en mi IDE (PyCharm) me sale bien

/Users/Rax/Documents/Projects/scriptpath
... (user-added entries in the PyCharm Interpreter Paths settings)  #(i)
... (system entries)

mineral)

/Users/Rax/Documents/Projects/scriptpath
... (user-added entries in the PyCharm Interpreter Paths settings)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

Dependiendo de si tengo una opción para incluir el "contenido raíz" habilitado o no.

I creo que entiendo de dónde provienen (i) las entradas en cada caso: todas están usando mi sistema PYTHONPATH, excepto PyCharm, que utiliza las rutas de "usuario agregado" al final de "Rutas" en "Configuración de intérprete"; pero no entiendo de dónde vienen los otros entres (o, de hecho, cómo PyCharm puede ignorar mi sistema PYTHONPATH).

Porque es el.. scriptpath ¿La entrada a veces se repite antes y después (i)? ¿Qué reglas se utilizan para agregar las otras entradas (como/usr/local/bin en (B)?

Respuestas a la pregunta(0)

Su respuesta a la pregunta