Por que meu 'sys.path' do Python é diferente para cada ferramenta que eu uso para executar meu código?

Estou confuso sobre as regras usadas para construir meu Pythonsys.path. Eu entendo que oprimeira entrada será "o diretório que contém o script que foi usado para chamar o intérprete Python", ou uma string vazia se o Python foi chamado de maneira interativa, e que os últimos registros serão entradas baseadas na instalação do Python. Mas estou confuso sobre o que está acontecendo entre esses dois conjuntos de entradas, em particular, como elas se relacionam com o meu PITONONA.

Quando eu (A) executo um script que imprime as entradas do meusys.path usandopython test.py no prompt de comando do sistema no../scriptpath diretório, eu recebo:

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

que não é igual ao que recebo quando (B) corroimport test enquanto em../scriptpath no shell 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

ou (C) em um shell Python

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

enquanto, (D) quando eu corrotest.py no meu IDE (PyCharm) recebo

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

ou (E)

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

dependendo se eu tenho uma opção para incluir a "raiz de conteúdo" ativada ou não.

I acho que entendo de onde vêm as entradas (i) em cada caso: todos estão usando meu sistema PYTHONPATH, exceto PyCharm, que usa os caminhos "adicionados pelo usuário" no final de "Caminhos" em "Configurações do intérprete"; mas não entendo de onde vêm as outras entradas (ou, por falar nisso, como o PyCharm é capaz de ignorar meu sistema PYTHONPATH).

Porque é o.. scriptpath entrada repetida algumas vezes antes e depois de (i)? Quais regras são usadas para adicionar as outras entradas (como/usr/local/bin em B)?