Как вы уже упоминали, os.path.join также может использоваться для каждого отдельного пути, который вы должны добавить, в случае, если вы должны его создать из отдельных частей.
Ответ 2
Обратите внимание, что os.environ на самом деле не словарь. Это специальный словарь-подобный объект, который фактически устанавливает переменные среды в текущем процессе, используя setenv.
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
Это означает, что PATH (и другие переменные среды) будут видны для запуска кода C в том же процессе.
Оговорка, о которой нужно знать при изменении переменных среды в Python, заключается в том, что нет эквивалента команды "export" shell. Нет способа вносить изменения в текущий процесс, только дочерние процессы.