Я хотел бы также иметь возможность запускать блокнот jupyter как обычный файл python (используя стандартный интерпретатор python).проблема, с которой я сталкиваюсь, заключается в том, что в python я не могу отобразить объекты уценки в удобном для использования из:
выполнении кода, приведенного ниже, отображается так, как должно быть в записной книжке, но печатает <IPython.core.display.Markdown object>
при запуске с использованием только Python.
from IPython.display import Markdown, display
display(Markdown('# Hello World!'))
Я пытался придумать способ сделать эту работу и нашел этот уродливый обходной путь:
from IPython.display import Markdown, display
from IPython import get_ipython
from IPython.core.displaypub import DisplayPublisher
from ipykernel.zmqshell import ZMQDisplayPublisher
display_pub_class = get_ipython().display_pub_class()
def displaymd(strg):
if isinstance(display_pub_class, ZMQDisplayPublisher):
display(Markdown(strg))
elif isinstance(display_pub_class, DisplayPublisher):
print(strg)
else:
# ??
display(strg)
displaymd('# Hello World!')
, который кажется очень хакерским!Есть ли более простой способ получить разумные display
объектов уценки?или, по крайней мере, более простой способ узнать, способен ли display
отрисовывать уценку?
тот же вопрос касается латекса, html и подобных объектов.
только что обнаружил глупоболее простой способ проверить, нахожусь ли я на ipython:
def on_ipython():
if 'get_ipython' in globals():
return True
else:
return False
def displaymd(strg):
if on_ipython():
display(Markdown(strg))
else:
print(strg)
все же это не очень приятно ...