python conda environment error with 4.3 executor and 4.12 server after upgrade

I am unable to run the workflow after upgrading analytics to 4.3 and it is giving no conda environment

Hi Rahul,

Could you check if in the executor.epf you have the correct path to the conda environment?

What server version you had previously to the upgrade?

Best wishes,
Ana

Hi Rahul,

Any news on this? Any way I could help you?

Best wishes,
Ana

Hi Ana,

Right now it is working by creating the executor.epf file in the executor directory of server repositary

Hi Rahul,

Perfect! Glad to know.

Best wishes,
Ana

Hey Ana,

I am currently clean reinstalling our server from 4.10.3 to 4.12.1 and since a week I am constantly failing to get conda run in the KNIME server. I was trying to follow the KNIME Python Integration Guide
Usually, we are using Miniconda 3, so I don’t know if that is a problem, since in one error message I got written Anaconda3 from KNIME even if the system has never heard from Anaconda before.

My miniconda (I am also trying anaconda3 now) just works fine if I use it in the console as knime user, but as soon as the KNIME server should use it … Since I can only access the server via console I tried the manual way and always end up with "no conda environment in the node “Conda environment propagation”, even if the configuration of the node shows me my environments with the packages just fine. Switching the preferences from manual to conda also does not help. I am not sure why starting scripts are needed, if the user knime can just use “conda”. But with those I had also no success.

Is the manual still up to date? Anaconda seems to use in the new version (Installing in silent mode — Anaconda documentation) to use eval "$(/Users/jsmith/anaconda/bin/conda shell.YOUR_SHELL_NAME hook)"

Any help is appreciated, I am totally lost. Hopefuly its just a simple thing:

My preferences:
/instance/org.knime.python2/condaDirectoryPath=/home/knime/anaconda3
/instance/org.knime.python2/defaultPythonOption=python3
/instance/org.knime.python2/python2CondaEnvironmentDirectoryPath=/home/knime/anaconda3/py27_knime.sh
/instance/org.knime.python2/python2Path=python
/instance/org.knime.python2/python3CondaEnvironmentDirectoryPath=/home/knime/anaconda3/py36_knime.sh
/instance/org.knime.python2/python3Path=python3
/instance/org.knime.python2/pythonEnvironmentType=manual
/instance/org.knime.python2/serializerId=org.knime.serialization.flatbuffers.column

When I am switching from manual to conda in the preferences, I link to the environments directly.

Thanks a lot!
Lars

hello @rahul_kumar and hello @laval,

several weeks ago I had the same issue. A solution can be found in this thread: click here.

BR,
Sven

Thanks a lot Sven, I think your solution is refering to special Python nodes. I am just using the normal KNIME Python nodes and hopefully in the current version 4.12.1 it is fixed already. However, I realized that you set the Python path for python 2 and 3 and did the same - just in case that would do the trick - but didn’t help:

/instance/org.knime.python2/condaDirectoryPath=/home/knime/anaconda3
/instance/org.knime.python2/defaultPythonOption=python3
/instance/org.knime.python2/python2CondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py27_knime
/instance/org.knime.python2/python2Path=/home/knime/anaconda3/bin/python
/instance/org.knime.python2/python3CondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py36_knime
/instance/org.knime.python2/python3Path=/home/knime/anaconda3/bin/python3
/instance/org.knime.python2/pythonEnvironmentType=conda
/instance/org.knime.python2/serializerId=org.knime.serialization.flatbuffers.column

However, I would expect, that the Python executable is taken from the environment - maybe I am misunderstanding something here.

Best,
Lars

hi lars (@laval),

here is my section of the *.epf-File. Looks like yours in the Python configuration.

/instance/org.knime.dl.python/condaDirectoryPath=/home/knime/anaconda3
/instance/org.knime.dl.python/kerasCondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py3_knime_dl_keras/bin
/instance/org.knime.dl.python/librarySelection=keras
/instance/org.knime.dl.python/manualConfig=/home/knime/anaconda3/envs/py3_knime_dl_keras/bin/python
/instance/org.knime.dl.python/pythonConfigSelection=dl
/instance/org.knime.dl.python/pythonEnvironmentType=manual
/instance/org.knime.dl.python/serializerId=org.knime.serialization.flatbuffers.column
/instance/org.knime.dl.python/tf2CondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py3_knime_dl_tf2/bin
/instance/org.knime.dl.python/tf2ManualConfig=/home/knime/anaconda3/envs/py3_knime_dl_tf2/bin/python
/instance/org.knime.ext.r.bin/knime.r.home=/usr/lib/R
/instance/org.knime.python2/condaDirectoryPath=/home/knime/anaconda3
/instance/org.knime.python2/defaultPythonOption=python3
/instance/org.knime.python2/python2CondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py2_knime
/instance/org.knime.python2/python2Path=python
/instance/org.knime.python2/python3CondaEnvironmentDirectoryPath=/home/knime/anaconda3/envs/py3_knime
/instance/org.knime.python2/python3Path=python3
/instance/org.knime.python2/pythonEnvironmentType=conda
/instance/org.knime.python2/serializerId=org.knime.serialization.flatbuffers.column

BR,
Sven

Hi Sven,

thank you and ja, that part looks the same. But on the KNIME server it is just not working for me. In the local Linux I have no problem with that. I tried now all I could think of and guess I am missing something. Maybe KNIME can check with me via Screensharing.

Best,
Lars

Hi Lars,

I already sent you a message to set up a meeting.

Cheers,
Michael

1 Like

In order it is interesting for others, I would like to follow up on that issue. Michael found the problem on my server right away and it was different to what I expected:
I am changing from KNIME server 4.10.3 to 4.12.2 and did not realise, that the executor needs to receive the Python settings in a new way via the client-settings feature. After all of that was set up the Python-workflows worked as expected.

Thanks a lot Michael!

HTH,
Lars

1 Like