Почему мой Python 'sys.path' отличается для каждого инструмента, который я использую для запуска своего кода?

Я запутался в правилах, используемых для создания моего Pythonsys.path, Я понимаю чтоПервая запись будет «каталог, содержащий скрипт, который использовался для вызова интерпретатора Python», или пустая строка, если Python был вызван в интерактивном режиме, и что последним вводом будут записи, основанные на установке Python. Но меня смущает то, что происходит между этими двумя наборами записей, в частности, как они связаны с моей PYTHONPATH.

Когда я (A) выполняю скрипт, который распечатывает записи моегоsys.path с помощьюpython test.py в командной строке системы в../scriptpath каталог, я получаю:

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

что не то, что я получаю, когда (B) я бегуimport test пока в../scriptpath в оболочке 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

или (C) в оболочке Python

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

в то время как, (D), когда я бегуtest.py в моей IDE (PyCharm) я получаю либо

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

или (E)

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

в зависимости от того, есть ли у меня возможность включить «содержимое корня» или нет.

I думаю, я понимаю откуда (i) записи приходят в каждом случае: все используют мою системную PYTHONPATH, кроме PyCharm, которая использует пути «добавленные пользователем» в конце «путей» в «настройках интерпретатора»; но я не понимаю, откуда берутся другие объекты (или в этом отношении, как PyCharm может игнорировать мою системную PYTHONPATH).

Почему.. scriptpath запись иногда повторяется до и после (я)? Какие правила используются для добавления других записей (например,/usr/local/bin в (B)?

Ответы на вопрос(0)

Ваш ответ на вопрос