はい、これは既知の問題です。 Pythonを書くとき、ほとんどのオブジェクトはsys.stdout
/sys.stderr
オブジェクトを書き込み、傍受するフックを提供します。ほとんどのコンパイルライブラリは、sys.stdin
/sys.stdout
に書き込もうとすると気にせず、ファイルディスクリプタを開いて書き込みます。これを傍受することはできません。たいていの場合、基礎となるライブラリでは修正できるものがありますが、多くの人がバグを報告するのは面倒です。
ノートブックを起動した端末でC++出力が表示されます。それを "修正"する方法についてのアイディアがありますが、それは自明ではありません。
注意、あなたが直接ファイル記述子1
を書き込むことによって再現することができ、「何とか」は、ノートブックが開始された端末に表示されます。
import os
os.write(1, 'blah\n'.encode())
マイターミナル:
[I 12:13:51.703 LabApp] Adapting to protocol v5.1 for kernel 5cf9f732-5a0e-417d-8b66-bc50d3cbbe80
blah
[I 12:15:51.633 LabApp] Saving file at /Untilted1.ipynb
あなたが提供できます行動を複製できる基本的な例? JupyterノートブックでC++カーネルを使用していますか?問題の説明があまりにも曖昧です。 – AmeyaVS
さまざまなライブラリ([this link](http://nest-simulator.org)参照)をインストールする必要があるため、動作を再現するのは簡単ではありません。 問題をより明確にするために:JupyterにはC++カーネルがありません。私は、すでにコンパイルされた実行可能ファイル(C++の実行可能ファイルのソースコード)とインターフェースするPythonコードしか実行しないからです。 これが少し問題を明確にすることを願っています。 – Alberto
シナリオは非常に曖昧ですが、 "Python interface to C++ code"の意味を詳しく説明できますか?好きなサンプルコードを好んで投稿してもらえますか? – AmeyaVS