Problems installing Modulus Sym in Google Colab with pip

Hi there,

I want to get Modulus Sym to run on Google Colab since my own computer (a Mac) doesn’t satisfy the hardware requirement of Modulus.

So, I am trying to install Modulus Sym on Google Colab with “pip install nvidia-modulus.sym”.

When I run the command in Google Colab (using !pip install nvidia-modulus.sym and the Python version is 3.10.11), I get the following error:


Collecting nvidia-modulus.sym
Using cached nvidia_modulus.sym-1.0.0-py3-none-any.whl (304 kB)
Collecting nvidia-modulus>=0.1.0 (from nvidia-modulus.sym)
Using cached nvidia_modulus-0.1.0-py3-none-any.whl (167 kB)
Collecting hydra-core>=1.2.0 (from nvidia-modulus.sym)
Using cached hydra_core-1.3.2-py3-none-any.whl (154 kB)
Requirement already satisfied: termcolor>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from nvidia-modulus.sym) (2.3.0)
Collecting chaospy>=4.3.7 (from nvidia-modulus.sym)
Using cached chaospy-4.3.13-py3-none-any.whl (254 kB)
Collecting Cython==0.29.28 (from nvidia-modulus.sym)
Using cached Cython-0.29.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 MB)
Collecting numpy-stl==2.16.3 (from nvidia-modulus.sym)
Using cached numpy-stl-2.16.3.tar.gz (772 kB)
Preparing metadata (setup.py) … done
Collecting opencv-python==4.5.5.64 (from nvidia-modulus.sym)
Using cached opencv_python-4.5.5.64-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.5 MB)
Collecting scikit-learn==1.0.2 (from nvidia-modulus.sym)
Using cached scikit_learn-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.5 MB)
Collecting symengine==0.6.1 (from nvidia-modulus.sym)
Using cached symengine-0.6.1.tar.gz (721 kB)
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
Preparing metadata (setup.py) … error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.


When I run the pip install command in a terminal on my machine, I also get the error, but it’s a little more verbose:


[…]

Collecting symengine==0.6.1 (from nvidia-modulus.sym)
Downloading symengine-0.6.1.tar.gz (721 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 722.0/722.0 kB 47.1 MB/s eta 0:00:00
Preparing metadata (setup.py) … error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
/Users/gilbert/anaconda3/envs/modulus-sym-env/lib/python3.10/site-packages/setuptools/init.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
!!

          ********************************************************************************
          Requirements should be satisfied by a PEP 517 installer.
          If you are using pip, you can try `pip install --use-pep517`.
          ********************************************************************************
  
  !!
    dist.fetch_build_eggs(dist.setup_requires)
  error: Multiple top-level packages discovered in a flat-layout: ['cmake', 'symengine'].
  
  To avoid accidental inclusion of unwanted files or directories,
  setuptools will not proceed with this build.
  
  If you are trying to create a single distribution with multiple packages
  on purpose, you should not rely on automatic discovery.
  Instead, consider the following options:
  
  1. set up custom discovery (`find` directive with `include` or `exclude`)
  2. use a `src-layout`
  3. explicitly set `py_modules` or `packages` with a list of names
  
  To find more information, look for "package discovery" on setuptools docs.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.


Do you have any recommendation of how I can get this to work on Google Colab? Unfortunately my machine is a Mac and doesn’t satisfy the Modulus hardware requirements.

Thanks so much for your help!

Gilbert

Hi @gilbertp

Looks like this is because some of these dependencies are not compatible with Python 3.10. I’ll log this as a bug to address in our next release. Thanks for reporting this. In the mean time try downgrading python in your collab notebook (for example python 3.8):

!sudo apt-get update -y
!sudo apt-get install python3.8

!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8
!sudo update-alternatives --config python3
!sudo apt install python3-pip
%pip --version
%pip install --upgrade pip
# Missing dependencies in modulus sym (fixed in next version)
%pip install tensorboard pandas
%pip install nvidia-modulus.sym

Hi @ngeneva,

Thanks so much for the tip and for the detailed instructions! I now successfully installed Modulus Sym on Google Colab under Python 3.8.10 and was able to run the helmholtz.py example using a T4 GPU.

All the best,

Gilbert

1 Like

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