python view can't save

Hi, everyone!
I have some questions about python view in KNIME.

This is my code,

from io import BytesIO
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

Y = input_table[‘標準差_價格_臥房’]/1000.0
X = input_table[‘面積分級’]

fig, ax = plt.subplots(dpi=240, figsize=(8, 6))

myfont = FontProperties(
fname=‘C:/Windows/Fonts/kaiu.ttf’,
size=14
)

buffer = BytesIO()

ax.plot(range(X.shape[0]), Y)
ax.set_xticklabels(X)

ax.set_xlabel(‘面積分級’, fontproperties=myfont)
ax.set_ylabel(‘價格標準差 (k)’, fontproperties=myfont)

fig.savefig(buffer, format=‘svg’)
output_image = buffer.getvalue()

I try to execute script, when I doesn’t program second last row, it can execute but can’t see any image or view.
If I program second last row, it will said ‘An exception occured while running the Python kernel. See log for details’.
I know that my saving has problem.

Hope somebody can deal with it or other methods of saving .
Thank for reading!!

Hi @Rita_Vin,

Could you please share your knime.log file? Perhaps there is more information in there that could be useful to identify the problem.
You can find the knime.log in your KNIME workspace directory: <your-knime-workspace>/.metadata/knime/knime.log. You can also open it inside KNIME via View > Open KNIME log, copy and paste its content to a new file, and upload that file here.

Marcel

1 Like

This is my knime.log

2021-11-05 19:12:14,736 : ERROR : Thread-34 : : PythonKernelManager : : : Failed to clean up Python. See log for details.
org.knime.python2.kernel.PythonKernelCleanupException: Failed to clean up Python. See log for details.
at org.knime.python2.kernel.PythonKernel.close(PythonKernel.java:1528)
at org.knime.python2.kernel.PythonKernelManager.close(PythonKernelManager.java:367)
at org.knime.python2.config.PythonSourceCodePanel$3.run(PythonSourceCodePanel.java:287)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.Exception: Failed to receive message from Python or forward received message. Cause: Connection reset
at org.knime.python2.kernel.messaging.AbstractMessageLoop.throwExceptionInLoop(AbstractMessageLoop.java:76)
at org.knime.python2.kernel.messaging.DefaultMessageReceiverLoop.loop(DefaultMessageReceiverLoop.java:98)
at org.knime.python2.kernel.messaging.AbstractMessageLoop.doLoop(AbstractMessageLoop.java:175)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
… 1 more
Suppressed: java.lang.Exception: Failed to distribute message from Python. Cause: Message receiver loop terminated.
at org.knime.python2.kernel.messaging.AbstractMessageLoop.throwExceptionInLoop(AbstractMessageLoop.java:76)
at org.knime.python2.kernel.messaging.MessageDistributorLoop.loop(MessageDistributorLoop.java:93)
… 4 more
Caused by: java.io.IOException: Message receiver loop terminated.
at org.knime.python2.kernel.messaging.DefaultMessageReceiverLoop.receive(DefaultMessageReceiverLoop.java:82)
at org.knime.python2.kernel.messaging.MessageDistributorLoop.loop(MessageDistributorLoop.java:82)
… 4 more
Suppressed: [CIRCULAR REFERENCE: java.lang.Exception: Failed to distribute message from Python. Cause: Message receiver loop terminated.]
Suppressed: [CIRCULAR REFERENCE: java.lang.Exception: Failed to distribute message from Python. Cause: Message receiver loop terminated.]
Suppressed: java.lang.Exception: Failed to send message to Python. Cause: Connection reset by peer: socket write error
at org.knime.python2.kernel.messaging.AbstractMessageLoop.throwExceptionInLoop(AbstractMessageLoop.java:76)
at org.knime.python2.kernel.messaging.DefaultMessageSenderLoop.loop(DefaultMessageSenderLoop.java:88)
… 4 more
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
at java.base/java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.base/java.net.SocketOutputStream.write(Unknown Source)
at java.base/java.io.DataOutputStream.writeInt(Unknown Source)
at org.knime.python2.kernel.messaging.DefaultMessageSender.send(DefaultMessageSender.java:80)
at org.knime.python2.kernel.messaging.DefaultMessageSenderLoop.loop(DefaultMessageSenderLoop.java:86)
… 4 more
Caused by: java.net.SocketException: Connection reset
at java.base/java.net.SocketInputStream.read(Unknown Source)
at java.base/java.net.SocketInputStream.read(Unknown Source)
at java.base/java.io.DataInputStream.readFully(Unknown Source)
at java.base/java.io.DataInputStream.readFully(Unknown Source)
at org.knime.python2.kernel.messaging.PythonMessagingUtils.readInt(PythonMessagingUtils.java:91)
at org.knime.python2.kernel.messaging.DefaultMessageReceiver.receive(DefaultMessageReceiver.java:80)
at org.knime.python2.kernel.messaging.DefaultMessageReceiverLoop.loop(DefaultMessageReceiverLoop.java:92)
… 4 more

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.