Starting with OpenSim version 4.4, we provide conda packages to support development in python+conda environment. There are two packages:
- 'opensim' which includes functionality in OpenSim 4.4 but without Moco (to avoid potential collision with other packages)
- 'opensim-moco' which includes Moco functionality
Both packages are built with variants for different python versions (3.7, 3.8, 3.9, 3.10) and numpy version 1.20, 1.23 with other dependencies included (simbody, ezc3d). The list of conda packages will grow as community needs evolve over time and as new variants are published. The one line installer:
> conda install -c opensim-org opensim
Issues to keep in mind:
There're a couple issues that you need to know about regarding conda packaging:
- The conda package is self contained, has no connection to any other OpenSim distribution including the OpenSim application.
- Conda packages are built for specific python version, indicated by the package name (e.g. opensim-4.4-py39np120 suggests a package built for python version 3.9 and using numpy version 1.20). Conda independently tries to locate the correct package for your environment, and prompts users before installation, please double check the suggested package to make sure it matches your environment/expectations as this resolution maybe affected by packages unrelated to OpenSim.
- Conda has a base environment but allows creation of environments with different python versions, it is less likely to have problems if you install the opensim package in the base environment so you have access to it in other created environments. This is to be understood as a troubleshooting method especially if you have other installations of opensim on your machine. Once sorted out you should remove opensim from the base environment and install only in custom environments as needed.
- Python changed how libraries are loaded on windows in version 3.8 so that PATH is not used to locate libraries, accordingly different instructions apply in these scenarios.
Troubleshooting:
- We rely on conda to download the correct version for your environment/python-version. This however is not always true since conda also has to resolve dependencies and make arbitrary decisions. Keep an eye if your python version is the same as the one indicated by the package name (e.g. 3.9 for opensim-4.4-py39np120). In case of mismatch, you can specify which package to install in the one line installer (e.g. for python version 3.8, conda install -c opensim-org opensim=4.4=py38np120). The common symptom of this incorrect matching between python version and opensim package is failing to load simbody DLL on windows.
- We recommend installing the opensim package before installing any other packages in a conda environment as this will mitigate the risk of conflicts between packages and issues with using opensim.
- The order of channels is important, if using a different order for channels you may see cryptic error messages (e.g. Library not loaded: @rpath/libopenblas.0.dylib on osx). To check and fix the order:
- update conda: `conda update conda`
- `vim ~/.condarc`
- view the order of channels:
- `conda config —get`
- ensure `conda-forge` is at the bottom (“highest priority”), or at least higher priority than `defaults`
- if the channels is out of order, change the order in conda rc:
- manually change order so conda-forge at top.
- restart terminal