Как создать файл журнала при вызове CPLEX из Python

На веб-сайте https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.2/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/tutorials/InteractiveOptimizer/solnOptions.html я знал, что когда CPLEX решил проблема, он создаст файл журнала с именем "cplex.log", но когда я использую CPLEX для решения проблемы в python, этот файл не был создан. И я так растерялся, если у этой проблемы есть какие-то вопросы с разницей в языках. Я имею в виду, что при использовании CPLEX для решения проблемы в MATLAB, Java или C++ файл журнала будет создан, но не создан в python. Я ожидаю вашей помощи. Большое спасибо.

1 ответ

cplex.log Этот файл специфичен для интерактивного CPLEX. Он не создается автоматически при использовании других API (например, Python, Java и т. Д.). Однако вы можете создать его самостоятельно, выполнив следующие действия (например, с помощью Python API):

cpx = cplex.Cplex()
cplexlog = "cplex.log"
cpx.set_results_stream(cplexlog)
cpx.set_warning_stream(cplexlog)
cpx.set_error_stream(cplexlog)
cpx.set_log_stream(cplexlog)

Аргумент к set_*_stream Методы могут быть путем (как указано выше) или файловым объектом, поэтому вы можете делать практически все, что захотите (например, реализовать файловый объект для отображения вывода в stdout, а также записать его в файл журнала и т. д.).). Смотрите документацию для set_results_stream для более подробной информации.

ПРИМЕЧАНИЕ. В интерактиве отображается некоторая информация, недоступная в других API. Тем не менее, вы должны быть в состоянии воссоздать его легко, так как вся информация доступна через программные API.

Другие вопросы по тегам