unable to bundle extension on osx-arm64

Hello,
I wrote the knime extension in python, made tests for it and verified that they work in a local condi environment. After that I want to bundle this package for more testing, but it only works on linux, windows and osx64, but not on osx-arm64, I get this error:

I’ve tried installing packages (pandas, openssl, tensorflow) that aren’t there, but I either get another package that can’t be installed, or I get an error saying that I need to install a specific version of some package that I already have downloaded, but another version. I also created a yml file from my environment using different methods (as in the knime tutorial), but it also does not work.
The biggest issue for me is that I need tensorflow to install the “fluoriclogppka” and “dgl” libraries, even though it’s not used and it’s not in the environment I used to test the extension locally, where I only installed one library “fluoriclogppka” and all dependencies installed themselves. It is also worth adding that these problems started after adding the “dgl” library to the package. Can anyone advise how to fix dgl installation for osx-arm64?
My yml file:

name: knime_env
channels:
  - anaconda
  - defaults
  - knime
  - conda-forge
  - dglteam
dependencies:
  - python=3.11
  - knime-extension
  - knime-python-base
  - dgl
  - pip:
    - fluoriclogppka

Thank you and I apologize for the slightly unclear question, I don’t know how to formulate it properly.

it is also worth adding that the previous version of the pypi package of “fluoriclogppka” wasn’t just bundled in knime, but it could also be connected to knime and use all nodes correctly from this bundled extension.

Hi @ppav,

from a quick test on my M1 Mac and an examination of your Python package ‘dgl’, I have some thoughts:

  • The dgl package is not available for osx-arm64 → Which dgl package should it use?
  • My test generated this create_env_report.log (44.0 KB) (and it did not work)
  • I propose to set the version of dgl in your environment.yml to narrow my report down, but I do not know which version you actually want to use
  • At least I have an python=3.11 issue, that might be related to the first bullet

Maybe you can work with these points already.

Furthermore, for licensing reasons I advise to not use the channel anaconda.

If that does not help, we might need to have a look at the extension itself and how it is bundled, or maybe you can send a log of the whole bundling part.

Best regards
Steffen

1 Like

Hello Steffen,

Thanks for the reply and for the log file, it helped, I specified the version of dgl - 2.2.0 and installed it via pip, not the conda channels, because it’s not there for some reason, although the anaconda site definitely lists the versions of this package for aarch. But that is not so important, because it now works as it does locally and all tests are performed correctly.
Thank you very much for telling me about the “anaconda” channel - I will be aware of possible licensing issues.
And now I will try to publish this extension)

Best regards
Petro

1 Like

Hi @ppav,

glad it worked. However, there is no version of osx-aarch64, I am not sure how you come to that conclusion. Even here it does not show it:

Screenshot 2024-06-12 at 14.00.52

Hi @ppav,

I am also unsure why you use the pip version of fluoriclogppka, because it is also on conda-forge: Fluoriclogppka :: Anaconda.org

It seems like you could omit pip alltogether.

Best
Steffen

Hello Steffen,

I tried to bundle the extension using fluoriclogppka from conda-forge, but somehow there is a problem with picking up the versions of the various libraries that fluoriclogppka and dgl need, by moving to pip I was able to fix it.

Although an interesting fact is that when I made virtual environments using conda or virtualenv for local work with knime, fluoriclogppka was installed without problems from pypi and conda-forge.

The problem with bundling I think might be because installing fluoriclogppka with conda-forge requires changing the environment config with the following command:

conda config --set channel_priority strict (from fluoriclogppka repo in conda-forge conda-forge/fluoriclogppka-feedstock: A conda-smithy repository for fluoriclogppka. (github.com))

But this cannot be done in a yaml file(

Best regards
Petro

1 Like

It looks like version dgl 2.2.0 is made only for two versions of mac on pypi, I don’t know why that is, to be honest, but it’s interesting)

1 Like

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