The Hero Python API can easily load modules that are written in Python and only use built-in Python modules. If you want to include external Python packages such as Numpy Scipy, or Pandas, then your environment must be setup to allow that.
If all of the Python packages that you need are included in a Conda environment, then it is typically sufficient to load that environment using `conda load my-env-name`. On an HPC, that line should be added to the bottom of the user's ~/.bashrc file so that the environment is loaded when Hero is launched on the worker nodes. This line should appear after any lines written to the .bashrc file from running `conda init`. Note that the conda environment must utilize a version of Python that is compatible with Hero. As of the time of writing, Hero utilizes Python 3.12 from conda-forge, so your Conda environment must use that same configuration.
It has been observed on Windows that some Python packages require a very specific patch version of the Python DLL. Hero comes with a Python DLL, but it may be incompatible with some Python packages because of this. If you enter DLL load errors when attempting to load a Python package, you may want to rename or remove the Python DLL in Hero's `bin` directory and modify your PATH environment variable to reference the directory where your Conda environment's Python DLL is located.
It has been observed on the NG Denali HPC that the libstdc++.so.6 file loaded by the Hero executable on startup may be older than the library required by the Python Pandas libraries, causing a user-defined Python API file to fail to load if it imports pandas. To work around this, you can force Hero to load the newer version of libstdc++.so.6 that comes with Pandas. As of the time of writing, adding the following line to your ~/.bashrc file on the Denali HPC before running the qhero script will fix this issue: `export LD_PRELOAD=/path/to/your/conda/env/directory/lib/python3.12/libstdc++.so.6`