Мы уже знаем, что на текущую сессию интерпретатора изменение PYTHONPATH никак не повлияет. Но если вы запустите дочерний процесс, то он унаследует окружение текущего процесса, а значит и изменения в любых переменных будут на него влиять.
Вот небольшой пример:
Объявляем переменную
user@host:~$ export PYTHONPATH=/path1
Запускаем интерпретатор
user@host:~$ python3
Проверим что в sys.path
>>> import sys
>>> print(sys.path)
['', '/path1', '/usr/lib/...', ...]
Добавляем что-то в переменную
>>> import os
>>> os.emviron['PYTHONPATH'] = '/path1:/path2'
>>> print(sys.path)
['', '/path1', '/usr/lib/...', ...]
Изменений нет. Но давайте запустим дочерний процесс и посмотрим там
>>> os.system('python3')
# теперь мы находимся в другом процессе
>>> import sys
>>> print(sys.path)
['', '/path1', '/path2', '/usr/lib/...', ...]
Тоже самое будет и с subprocess, так как по умолчанию текущее окружение тоже наследуется.
>>> import subprocess
>>> subprocess.call(['python3', '-c', 'import sys;print(sys.path)'])
['', '/path1', '/path2', '/usr/lib/...', ...]
______________________
Лучшей практикой является передача энвайронмента явно через аргумент env!
import subprocess
subprocess.call(cmd, env={'PYTHONPATH': '...'})
Это поможет точно понимать какое окружение будет у запускаемого процесса и при этом не изменять окружение текущего процесса.
#basic
La vida no se rige por la voluntad o por la intención. La vida es una cuestión de nervios, de fibras, de células lentamente formadas, en las que se esconde el pensamiento, y la pasión tiene sus sueños. Puede que ahora te creas a salvo y te consideres fuerte. Pero un casual tono de color en una habitación, un cielo matinal, un perfume peculiar que hayas amado y que te trae sutiles recuerdos consigo, un verso de un poema olvidado que vuelve a tu memo- ria, una cadencia de una pieza musical que has dejado de tocar, de todo esto, Dorian, te lo digo, de todas estas cosas parecen depender nuestras vidas...
El retrato de Dorian Gray
#OscarWilde
Si usted me conoce basado en lo que yo era hace un año, usted ya no me conoce. Mi evolución es constante. Permitame presentarme de nuevo...
#OscarWilde
“¡Sí, soy un soñador! Y estoy orgulloso de ello, porque es gracias a mi ensoñación que puedo encontrar mi camino en completa oscuridad y luego ver el amanecer antes que el resto de la humanidad”.
#OscarWilde
Así que aprovecha tu juventud antes de que se acabe. No desperdicies tus días dorados escuchando a santos aburridos, no trates de corregir lo incorregible, no entregues tu vida a los ignorantes, vulgares y nulos, siguiendo las falsas ideas y aspiraciones malsanas de nuestra época. ¡Vivir! Vive la maravillosa vida que se esconde dentro de ti. ¡No te pierdas nada, busca siempre nuevas sensaciones! ¡No tengas miedo de nada!
El retrato de Dorian Gray
#OscarWilde