Users have been complaining about this for years and the python integration is still extremely tedious and does not really work consistently. It's annoying and yes I'm frustrated. This is still broken in KNIME 3.4
The" Setup python page" is also outdated
Issues:
Can't leave python2 empty:
i don't have python2 installed and don't want to.Yet if I leave that empty in the config, I get following error when trying to run a python snippet:
Could not detect python version
Python 3 is configured and set as default. Why do I need to add something to python2 field?????
If I set python2 config to "python" eg. use python3 it complains in the confif dialog. I now get a different error when executing a node:
Error while trying to load protobuf:
name 'unicode' is not defined
The minimum required protobuf version is 2.5.0
That used to be the error in previous python versions when trying to ise python3. Yes protobuf is installed, version 3.3.0. Tried other versions, don't work as well. This error indicates python 2 code running in python 3:
There is no such name in Python 3, no. You are trying to run Python 2 code in Python 3. In Python 3, unicode has been renamed to str.
So there is something clearly broken. has this even been tested? Yeah, apology in advance for the saltiness of this but stuff like that drives me crazy devs not testing their own stuff.
Hwo do I get this to work? And no pip install protobuf is NOT the solution. there clearly still is a python2 problem here.
Hey beginner_ ,
sorry for the trouble, as we are supporting the old python integration as well as the new one at the moment it may get a bit confusing.
Please check the following if you want to work with python3:
- You use the python nodes from the "KNIME Labs" -> "Python (major versions 2 & 3)" category. The nodes should have a "(Labs)" suffix in their name such as "Python Source (Labs)"
- You have configured each node to use Python3. This can be done in the configure dialog of each node from
the "KNIME Labs" -> "Python (major versions 2 & 3)" category by selecting the "Options" tab and selecting
"Python 3" via radio button in the "Use python version" category.
There is no need to have python2 installed, but to save you the trouble to select "Python 3" as described in bulletpoint 2 for every new node make sure to press the toggle button "Use as default" in the "Python 3" category on the preference page (File -> Preferences -> KNIME -> Python (Labs)). Afterwards "Python 3" will be automatically be selected for every new python node you drop into your workflow.
I hope I could help, best
Clemens
Hi Clemens,
"You use the python nodes from the "KNIME Labs" -> "Python (major versions 2 & 3)" category. The nodes should have a "(Labs)" suffix in their name such as "Python Source (Labs)" "
This fixed it. It was an existing example workflow made with the old nodes.
Thanks for your help and I'm sorry for my ranting above.
Hi beginner_ ,
I am glad to hear that it works now and that I could be of help.
Best
Clemens