Python integration on Linux

Hello, I have a problem with python integration on linux via terminal. Last step of https://docs.knime.com/2019-06/python_installation_guide/index.html is to point KNIME to the start script you just created, but only way is via GUI. Can I do it with terminal? I already installed all requirements (environment, start script)

Hi @aisara,

Welcome to the Forum! Did you use conda? Which version of KNIME do you use (The link points to the Documentation for KNIME 4.0 but KNIME 4.2 is the latest version)?

To set the preferences without using the GUI you need an eclipse preference file (knime-pref.epf) looking like this (for a Python installation with a start script not using conda):

@org.knime.workbench.core=2.10.0.0043156
\!/=
file_export_version=3.0
/instance/org.knime.python2/pythonEnvironmentType=manual
/instance/org.knime.python2/defaultPythonOption=python3
/instance/org.knime.python2/python2Path=/path/to/python2
/instance/org.knime.python2/python3Path=/path/to/python3
/instance/org.knime.python2/serializerId=org.knime.serialization.flatbuffers.column

Adjust the paths and the serializer to your needs and start KNIME AP with the command line argument -preferences=knime-pref.epf.

I think this file should work for older versions of KNIME but I would need to check to be sure. The easiest way to get the correct preferences is to start the KNIME AP GUI and configure them via the GUI (on a system with a GUI and with a similar/equal setup). Then export the preferences via File -> Export Preferences....

1 Like

Thank you for reply, @bwilhelm

Yes, I use conda (the latest version). Version of KNIME is 4.2. I can’t find eclipse preference file, should I export from GUI? If yes, is there another way to export, because I don’t have any GUI

Hi @aisara,

you can just create a new text file with the following content (replace the marked strings):

@org.knime.workbench.core=2.10.0.0043156
\!/=
file_export_version=3.0
/instance/org.knime.python2/pythonEnvironmentType=conda
/instance/org.knime.python2/condaDirectoryPath=<path_to_conda>
/instance/org.knime.python2/python2CondaEnvironmentDirectoryPath=<path_to_conda>/envs/<py2_env_name>
/instance/org.knime.python2/python3CondaEnvironmentDirectoryPath=<path_to_conda>/envs/<py3_env_name>

and specify the path to the file with the -preferences command-line argument.

@bwilhelm, do you know how to solve this problem?

In preferences I set serializationId

Hey @aisara,

It seems like the plugin for the serialization is missing from your installation. The plugin has the identifier " org.knime.python2.serde.flatbuffers". How did you install the Python integration? The plugins should be included in the “KNIME Python Integration” feature.

Hey, @bwilhelm

I install Python integration with this guide https://docs.knime.com/2019-06/python_installation_guide/index.html . All dependencies I set in yml how it is said in guide.

Another extensions was installed by this command

It seems like you installed the Python integration from the 4.0 update site but you said that you are using KNIME 4.2. Was this intended?

Can you attach your knime log? It may contain information about why the serialization plugins are not available.

@bwilhelm, How can I attach my logs via terminal?

You can find the log file at ~/knime-workspace/.metadata/knime/knime.log. I don’t think you can attach it to standard out.

@bwilhelm I can’t find this directory, so I find another way to write console log via terminal. Here is my logs knime.txt (210.8 KB)

Sorry for the late reply. Good that you found a way to get a log.
I could not see why the serialization plugins are missing. However, I could see that many plugins cannot be loaded due to dependency issues. It is most likely due to the older versions of the plugins with a newer version of KNIME. Can you try to update the plugins using the “4.2” update site? (Or better: setup a new installation using the correct update site).