Я пытаюсь разделить (установить/получить) переменную между пакетами и модулями, но значение не меняется.
Что я делаю неправильно?
общий.py
my_shared_value = 'init'
mod_write.py
import mylib.shared
mylib.shared.my_shared_value = 'changed'
mod_read.py
import mylib.shared
while True:
# outputs always 'init' but should output 'changed'
# after mod_set.py was executed.
print(mylib.shared.my_shared_value)
Исполнение (та же виртуальная среда)
# Terminal 1
python ./mod_read.py # outputs 'init', runs forever
# Terminal 2
python ./mod_write.py # doesn't affect the output of Terminal 1
@Aran-Fey Спасибо, я добавлю больше информации.
@ Аран-Фей, я обновил свой ответ. Это помогает?
Это так, да. Спасибо.
Повтор: Как разделить переменные между сценариями в python?
@ Аран-Фей Еще раз спасибо. Если вы опубликуете ответ, я приму его.






Чтобы увидеть результат файла mod_write.py, вам также необходимо импортировать этот файл (но после первого импорта).
В вашем случае вы выполняете файлы отдельно, поэтому не видите ожидаемого результата.
Попробуйте так:
import mylib.shared
import mylib.mod_write
while True:
# outputs always 'init' but should output 'changed'
# after mod_set.py was executed.
print(mylib.shared.my_shared_value)