Мы уже знаем, что на текущую сессию интерпретатора изменение 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
😍Новая игра — Rewinding Cadence
😍Rewinding Cadence — это экшен-RPG с открытым миром, в основе сюжета которой лежит механика временной петли.
😍 Основные детали:
• Аниме-стилистика и элементы 2D-графики.
• Сражения с участием духовных спутников, которых можно прокачивать.
• Механики планирования, полётов и передвижения на ховербордах.
• История реагирует на решения игрока через систему бросков d20 (как в Dungeons & Dragons).
😍 Официальный сайт: тык
💬 Так-так-так, а это уже кое-что интересненькое.
[Тег: #RC]
😍 Больше в iNFO Daily
Hope meaning in my word's "Light"
We just walking under the tunnel because we know we can find a light end of this tunnel. Life is equal to tunnel so don't stop. Keep walking.
#review#RC#hope
New RC Build Available!
Version: CPH2649_16.0.2.402
Region: IN
Update:
Now available for EU
🔔 Updates: @OnePlus13Series
💬 Discussion: @OnePlus13SeriesChatRoom
#OTA#RC
*Perhaps my soul is dark*
I am drawn into your world
That you so darkly carved
With your emptiness
Perhaps my soul is dark
Perhaps I like black holes
Perhaps I hope to emerge
On the other side as bright
As a brilliant.radiant star
That lights up a million worlds
Im sorry Jasmine
I am drawn to your dark nudity
The poverty of your humanity
Perhaps my soul is dark
Perhaps I like the thorns better
Than the roses and the fragrance
Of blood better than jasmine
Perhaps I want to break through
The darkest night pouring into
A zig zillion shards of light
silently making a new dawn
#review, #RC, #Everyone, #poetry
#Italia#Europee
Sono 16 i partiti ammessi alle elezioni europee, nessuna ha dovuto raccogliere le 150.000 firme necessarie, vediamoli insieme:
-#M5S
-#PD-#A1MDP-#DemoS
-#Lega-#MNS
-#FI (Insieme a #UdC-#MpA-#IDeA-#CP-#NPSI-#EpI-#RC-#PLI)
-#FdI (Insieme a #DI-#DiventeràBellissima)
-#LS (#SI-#PRC-#AET-#ÉViva)
-#EV (#FdV-#Possibile)
-#PiùE-#IiC (Insieme a #PSI-#PRI)
-#PdF-#AP
I partiti sottostanti sono stati ammessi anche senza avere né rappresentanza in parlamento né senza aver raccolto firme
-#PC (Partito Comunista)
-#CPI-#DU (CasaPound-Destre Unite)
-#FN (Forza Nuova)
-#PPI (Popolari Per l'Italia)
-#PPIT (Partito Pirata)
-#PAI (Partito Animalista Italiano)
-#PPA (Popolo Partite IVA)
Nelle tre regioni #ValleDAosta, #TrentinoAltoAdige e in #FVG troviamo diverse alleanze:
-#ApE con il PD (#UV-#UVP-#ALPE-#EPAV-#SA)
-#SVP-#PATT e #SSk con FI
-#LAltoAdigeNelCuore con FdI
-#VGV con #EV
-#TK con #PiùE
@NewsDalMondoo