我正在使用Jupyter筆記本作爲Python接口到C++代碼。如果我啓動了相同的Python代碼與Jupyter筆記本不顯示C + +輸出(cout)
$蟒蛇mycode.py
我可以在終端看到所有的「性病::法院」的C++代碼的語句,但如果我的所有執行Jupyter筆記本塊「cout」不顯示。
你知道我是否以及如何在Jupyter筆記本上看到標準輸出流?
謝謝!
我正在使用Jupyter筆記本作爲Python接口到C++代碼。如果我啓動了相同的Python代碼與Jupyter筆記本不顯示C + +輸出(cout)
$蟒蛇mycode.py
我可以在終端看到所有的「性病::法院」的C++代碼的語句,但如果我的所有執行Jupyter筆記本塊「cout」不顯示。
你知道我是否以及如何在Jupyter筆記本上看到標準輸出流?
謝謝!
是的,這是一個已知的問題。在編寫Python時,大多數對象都會寫入對象,提供攔截攔截。大多數編譯庫不會試圖寫入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
感謝您的澄清!在詢問之前我查找了它,但我沒有找到答案。 – Alberto
你能提供一個可以複製行爲的基本示例?您是否在Jupyter筆記本中使用C++內核?,您對問題的描述過於模糊。 – AmeyaVS
因爲需要安裝不同的庫(見[此鏈接](http://nest-simulator.org)),因此重現該行爲並不容易。 爲了更好地定義問題:我沒有Jupyter中的C++內核,因爲我只執行與已編譯的可執行文件(C++中可執行文件的源代碼)進行交互的Python代碼。 我希望這可以澄清一點問題。 – Alberto
你的場景很模糊,你能詳細闡述一下你的意思是「python interface to C++ code」是什麼意思?你最好用一個示例代碼發佈一個例子來幫助你? – AmeyaVS