Мы уже знаем, что на текущую сессию интерпретатора изменение 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
#Italia🇮🇹
#Regionali
#Marche
❓Come si vota nelle Marche?
Come nelle altre Regioni a statuto ordinario, i cittadini eleggono sia il Presidente della Giunta regionale, sia i membri del Consiglio regionale.
È proclamato Presidente il candidato che ottiene il maggior numero di voti validi.
I seggi del Consiglio regionale sono ripartiti in 5 circoscrizioni elettorali, corrispondenti alle Province (tra parentesi è indicato il numero di consiglieri spettanti a ciascuna):
- Ancona (9);
- Ascoli Piceno (4);
- Fermo (4);
- Macerata (6);
- Pesaro-Urbino (7).
In totale sono previsti 30 seggi, a cui si aggiunge quello riservato al Presidente della Giunta regionale.
L’assegnazione dei seggi avviene con metodo D’Hondt. Al candidato eletto Presidente spettano 18 o 19 seggi del Consiglio, da suddividere proporzionalmente tra le liste che lo hanno sostenuto. I seggi restanti vengono attribuiti alle altre liste.
Per le liste singole non è prevista alcuna soglia di sbarramento. Per le coalizioni, invece, la soglia è alternativa:
- del 5% dei voti validamente espressi;
- se la coalizione non raggiunge il 5%, è sufficiente che una lista al suo interno ottenga il 3%.
@TuttoElezioni
🇳🇱 La marche commémorative Régiment immortel a eu lieu à Amsterdam, rassemblant des dizaines de personnes venues de tous les coins des Pays-Bas, rapporte la correspondante de TASS.
#paysbas#marche
#Italia#Marche
Il sindaco di Civitanova Marche Fabrizio Ciarapica lascia #FI|EPP e aderisce a #FN|ESN: è il primo sindaco “futurista” di un comune italiano superiore.
@Osservatorioitaliano