See the O$_2$sclpy documentation at https://awsteiner.org/code/o2sclpy for more information.
import sys
print(sys.path)
['/Users/awsteiner2/wcs/o2sclpy/examples', '/usr/local/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python311.zip', '/usr/local/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11', '/usr/local/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload', '', '/usr/local/Cellar/jupyterlab/4.0.2/libexec/lib/python3.11/site-packages', '/usr/local/opt/ipython/libexec/lib/python3.11/site-packages', '/usr/local/opt/pygments/lib/python3.11/site-packages', '/usr/local/opt/pycparser/lib/python3.11/site-packages', '/usr/local/opt/cffi/lib/python3.11/site-packages', '/usr/local/opt/six/lib/python3.11/site-packages', '/usr/local/opt/python-typing-extensions/lib/python3.11/site-packages', '/usr/local/opt/pyyaml/lib/python3.11/site-packages', '/Users/awsteiner2/Library/Python/3.11/lib/python/site-packages', '/usr/local/lib/python3.11/site-packages']
import o2sclpy
import sys
plots=True
if 'pytest' in sys.modules:
plots=False
This code dynamically links the O$_2$scl library. Environment variables can be used to specify the location of various libraries which need to be added. These values can also be set directly in the linker class (and then they override the environment variables). See http://awsteiner.org/code/o2sclpy/link_cpp.html#linking-with-o2scl for more detail. We set the verbose parameter to 1 to output more information about which libraries are being linked.
link=o2sclpy.linker()
link.verbose=1
link.link_o2scl()
Set o2scl_cpp_lib from environment variable O2SCL_CPP_LIB to '/usr/local/lib/gcc/13/libstdc++.dylib'. Loading C++ library '/usr/local/lib/gcc/13/libstdc++.dylib'. Finished loading C++ library. Set o2scl_addl_libs from environment variable O2SCL_ADDL_LIBS to: ['/usr/lib/libreadline.dylib', '/usr/local/lib/gcc/13/libgomp.1.dylib'] Loading additional library '/usr/lib/libreadline.dylib'. Loading additional library '/usr/local/lib/gcc/13/libgomp.1.dylib'. Finished loading additional libraries. Set o2scl_lib_dir from environment variable O2SCL_LIB to '/usr/local/lib'. Loading /usr/local/lib/libo2scl.dylib. Done loading o2scl libraries. Setting alternate error handler.
To test that the link worked, obtain the O$_2$scl version from the DLL:
print(link.o2scl_settings.o2scl_version())
b'0.929'
def test_fun():
assert link.o2scl_settings.o2scl_version()==b'0.929'
return