Иногда в моих программах печатались отладочные сообщения следующим образом
if __debug__:
print("Something is wrong.")
, и теперь я использовал классные функции joblib Parallel и отложил их следующим образом
joblib.Parallel(n_jobs=1 if __debug__ else -1,
verbose=10 if __debug__ else 0)
(joblib.delayed(myfunction)(singleargument)
for singleargument in argument)
Хорошая новость: Результаты в порядке, и ускорение довольно круто. При запуске с python
используется подробный вывод и одно задание, при запуске с python -OO
используется ноль многословных и заданий = -1.
Fine. Но: те отладочные сообщения в myfunction (помещенные как показано выше) получили отображение.
Как я могу вызывать с помощью joblib и __debug__=False
при вызове external таким образом, что внутренние функции также запускаются с __debug__=False
?
Еще одна деталь: такое поведение происходит на Debian Linux Python 3.7.3
, но не на Windows Python 3.6.8 Intel Corporation
.