Python API Installation problems on OSX

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Mario Martinez-Zarzuela
Posts: 4
Joined: Thu Nov 05, 2020 12:31 pm

Python API Installation problems on OSX

Post by Mario Martinez-Zarzuela » Fri Apr 01, 2022 2:41 am

Hi,

I tried to install different versions of OpenSim (4.2 and 4.3) Python API on a MAC computer (M1 chip) without success.

CASE 1: OpenSim 4.2 using Python 2.7 (the most promising):
sudo python setup.py install --> runs smoothly

In my .bashrc I included
export PYTHONPATH=/Applications/OpenSim\ 4.2/sdk/Python:$PYTHONPATH
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/OpenSim\ 4.2/sdk/lib

Problem:
Once installed, I try to import OpenSim module and get this error:
Python 2.7.16 (default, Jun 18 2021, 03:23:52)
[GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import opensim as os
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "opensim/__init__.py", line 1, in <module>
from .simbody import *
File "opensim/simbody.py", line 17, in <module>
_simbody = swig_import_helper()
File "opensim/simbody.py", line 16, in swig_import_helper
return importlib.import_module('_simbody')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named _simbody

CASE 2: OpenSim 4.3 using Python 2.7:
Problem: I get invalid syntax error messages:

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/simulation.py to simulation.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/simulation.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/version.py to version.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/examplecomponents.py to examplecomponents.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/examplecomponents.py", line 84
def safeDownCast(obj: "OpenSimObject") -> "OpenSim::ToyReflexController *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/tools.py to tools.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/tools.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/actuators.py to actuators.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/actuators.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/common.py to common.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/common.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/analyses.py to analyses.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/analyses.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/simbody.py to simbody.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/simbody.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/moco.py to moco.pyc
File "build/bdist.macosx-11.5-arm64/egg/opensim/moco.py", line 74
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax

Many thanks in advance!
Mario

Tags:

User avatar
Ayman Habib
Posts: 2235
Joined: Fri Apr 01, 2005 12:24 pm

Re: Python API Installation problems on OSX

Post by Ayman Habib » Fri Apr 01, 2022 9:22 am

Hello,

OpenSim 4.3 was released before M1-based systems (Arm64) were widely available, as such we recommend using the Rosetta environment suggested by Apple
https://support.apple.com/en-us/HT211861
until we have natively compiled libraries in the near future.

Best regards,
-Ayman

User avatar
Mario Martinez-Zarzuela
Posts: 4
Joined: Thu Nov 05, 2020 12:31 pm

Re: Python API Installation problems on OSX

Post by Mario Martinez-Zarzuela » Sat Apr 02, 2022 10:58 am

Hello Ayman,

Thank you for your prompt response. Not sure if I have fully understood, though.
I do have Rosetta installed in my system. OpenSim environment is working without problem.

My issue is with the Python API from command line, once installation is finished. Now tried to open terminal using Rosetta (https://apple.stackexchange.com/questio ... ilicon-mac), for the installation process. Below are the output of commands "sudo python setup.py build" and "sudo python setup.py install" in OpenSim 4.2: no errors, but name files point to the arm64 architecture (not x86-64).

So I do not know how to install the API using Rosetta...

Best regards,
Mario

sudo python setup.py build
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py:481: UserWarning: The version specified ('4.2-2021-03-12-fcedec9') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
"details." % self.metadata.version
running build
running build_py
running egg_info
writing opensim.egg-info/PKG-INFO
writing top-level names to opensim.egg-info/top_level.txt
writing dependency_links to opensim.egg-info/dependency_links.txt
writing entry points to opensim.egg-info/entry_points.txt
reading manifest file 'opensim.egg-info/SOURCES.txt'
writing manifest file 'opensim.egg-info/SOURCES.txt'
marmar@MacBook-Air-de-Mario Python % ls
build dist opensim opensim.egg-info setup.py
marmar@MacBook-Air-de-Mario Python % sudo python setup.py install
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py:481: UserWarning: The version specified ('4.2-2021-03-12-fcedec9') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
"details." % self.metadata.version
running install
running bdist_egg
running egg_info
writing opensim.egg-info/PKG-INFO
writing top-level names to opensim.egg-info/top_level.txt
writing dependency_links to opensim.egg-info/dependency_links.txt
writing entry points to opensim.egg-info/entry_points.txt
reading manifest file 'opensim.egg-info/SOURCES.txt'
writing manifest file 'opensim.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-11.5-arm64/egg
running install_lib
running build_py
creating build/bdist.macosx-11.5-arm64/egg
creating build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/simulation.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/version.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/examplecomponents.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/tools.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_simbody.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/__init__.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/actuators.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_analyses.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_moco.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/common.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_actuators.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_tools.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/analyses.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/simbody.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/moco.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/report.py -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_common.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_simulation.so -> build/bdist.macosx-11.5-arm64/egg/opensim
copying build/lib/opensim/_examplecomponents.so -> build/bdist.macosx-11.5-arm64/egg/opensim
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/simulation.py to simulation.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/version.py to version.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/examplecomponents.py to examplecomponents.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/tools.py to tools.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/actuators.py to actuators.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/common.py to common.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/analyses.py to analyses.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/simbody.py to simbody.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/moco.py to moco.pyc
byte-compiling build/bdist.macosx-11.5-arm64/egg/opensim/report.py to report.pyc
creating build/bdist.macosx-11.5-arm64/egg/EGG-INFO
copying opensim.egg-info/PKG-INFO -> build/bdist.macosx-11.5-arm64/egg/EGG-INFO
copying opensim.egg-info/SOURCES.txt -> build/bdist.macosx-11.5-arm64/egg/EGG-INFO
copying opensim.egg-info/dependency_links.txt -> build/bdist.macosx-11.5-arm64/egg/EGG-INFO
copying opensim.egg-info/entry_points.txt -> build/bdist.macosx-11.5-arm64/egg/EGG-INFO
copying opensim.egg-info/top_level.txt -> build/bdist.macosx-11.5-arm64/egg/EGG-INFO
writing build/bdist.macosx-11.5-arm64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
opensim.actuators: module references __file__
opensim.analyses: module references __file__
opensim.common: module references __file__
opensim.examplecomponents: module references __file__
opensim.moco: module references __file__
opensim.simbody: module references __file__
opensim.simulation: module references __file__
opensim.tools: module references __file__
creating 'dist/opensim-4.2_2021_03_12_fcedec9-py2.7.egg' and adding 'build/bdist.macosx-11.5-arm64/egg' to it
removing 'build/bdist.macosx-11.5-arm64/egg' (and everything under it)
Processing opensim-4.2_2021_03_12_fcedec9-py2.7.egg
removing '/Library/Python/2.7/site-packages/opensim-4.2_2021_03_12_fcedec9-py2.7.egg' (and everything under it)
creating /Library/Python/2.7/site-packages/opensim-4.2_2021_03_12_fcedec9-py2.7.egg
Extracting opensim-4.2_2021_03_12_fcedec9-py2.7.egg to /Library/Python/2.7/site-packages
opensim 4.2-2021-03-12-fcedec9 is already the active version in easy-install.pth
Installing opensim-moco-generate-report script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/opensim-4.2_2021_03_12_fcedec9-py2.7.egg
Processing dependencies for opensim===4.2-2021-03-12-fcedec9
Finished processing dependencies for opensim===4.2-2021-03-12-fcedec9

POST REPLY