python笔记本中的stdout/stderr

2024-05-13 12:19:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3,最近我能够为某些类型的优化问题接口一个FORTRAN解算器(感谢这里关于堆栈溢出的eryksun)。在

一个小问题是python笔记本(jupyter)中的解算器输出没有显示出来。请注意,解算器返回正确的解,但它不显示其进度或任何消息。不过,如果从julia笔记本调用相同的FORTRAN解算器,我可以在julia笔记本中看到输出。解算器输出/消息只是stdout的FORTRAN write()语句。在

例如,以下是julia笔记本显示的:

Hello World from Wrapper!

 Iter:   0  Nfun:   1  f1(x) =  24.20000         Eps =  116.4338    
 Iter:   1  Nfun:   2  f1(x) =  24.20000         Eps =  48.68118    
 Iter:   2  Nfun:   3  f1(x) =  6.307350         Eps =  7.505725    
 Iter:   3  Nfun:   4  f1(x) =  6.307350         Eps =  4.854666    
 Iter:   4  Nfun:   5  f1(x) =  3.580435         Eps = 0.1099409    
 Iter:   5  Nfun:   6  f1(x) =  3.580435         Eps = 0.8368376E-01   
 .....

解算器将所需的文件输出编号作为参数。对于FORTRAN,这是stdout的6。当我从python和julia调用解算器时,我将这个参数设置为6。在

这似乎与jupyter中的内核(python vs.julia)有关,但我找不到一个简单直接的方法来查看这个输出,这对于调试和验证目的至关重要。在

有什么提示或建议吗?在

提前谢谢你!在

下面是调用FORTRAN解算器的代码-它有31个参数。 参数num_outcalls(设置为6)和disp(对于详细模式,设置为3)。FORTRAN是加载的FORTRAN库“解算器”_lib.so公司““

^{pr2}$

Tags: 消息类型参数堆栈stdout笔记本jupytereps