From d7d0beb2f683f5aac285429a8e93d510f11f9a77 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Wed, 19 Aug 2015 17:48:51 +0100
Subject: [PATCH] Was it this simple all along? Explicitly setting libraryt
 path before OpenGL is imported. I still seem to need to restart though ..

---
 fsl/tools/render.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/fsl/tools/render.py b/fsl/tools/render.py
index c9c925f6d..e346114e1 100644
--- a/fsl/tools/render.py
+++ b/fsl/tools/render.py
@@ -12,12 +12,9 @@ See:
   - :mod:`fsl.fsleyes.fsleyes_parseargs`
 """
 
-#
-# TODO Separate out lightbox/ortho canvas layout and option configuration.
-# 
-
 
 import os
+import os.path as op
 import sys
 
 import logging
@@ -310,6 +307,14 @@ def run(args, context):
         fsl.runTool('render', argv, env=env)
         sys.exit(0)
 
+    # Make sure that FSL_OSMESA_PATH is definitely on the
+    # library path before OpenGL is imported (which occurs
+    # in fskl.fsleyes.gl) - pyinstaller clears the
+    # DYLD_LIBRARY_PATH env var before running a compiled
+    # script, so our above restart is useless.
+    os.environ[_LD_LIBRARY_PATH] = os.environ.get(_LD_LIBRARY_PATH, '') + \
+                                   op.pathsep + env['FSL_OSMESA_PATH']
+
     import fsl.fsleyes.gl                      as fslgl
     import fsl.fsleyes.gl.osmesaslicecanvas    as slicecanvas
     import fsl.fsleyes.gl.osmesalightboxcanvas as lightboxcanvas
-- 
GitLab