Это странный вопрос ...
Я разрабатываю базовое приложение Python3 (MY_APP), которому нужно в какой-то момент вызвать другое приложение Python (REQ_APP).
MY_APP может использовать любую версию Python3, хотя REQ_APP может использовать только Python2.7 или Python3.4. Это происходит потому, что он загружает библиотеки, связанные с библиотеками разработки Python2.7 или Python3.4.
Я не хочу, чтобы это приложение было доступно только через виртуальную среду, поэтому я не вижу другого варианта, кроме вызова REQ_APP смой установленный Python2.7 через вызов подпроцесса без MY_APP.
Зная, что MY_APP использует модуль журналирования, а также REQ_APP с другой конфигурацией, что приводит к некоторым странным сообщениям журналирования, таким как:
[MODCON] 2019-10-04 09:59:39 DEBUG format '{date} {time} - {id} - {maintype} - {msg}' -> '(?P<date>.+?) (?P<time>.+?) - (?P<id>.+?) - (?P<maintype>.+?) - (?P<msg>.+?)'
Это входящий вызов REQ_APP. Это определяет его собственную регистрацию, хотя это использует мою конфигурацию, которую я определил в MY_APP. Есть ли способ избежать этого конфликта? Можно ли сделать условную настройку модуля логирования в зависимости от файла звонящего? Обратите внимание, что поскольку REQ_APP не мой, я не могу изменить исходный код, даже если я его вижу!