From 692122e1adcb2f51b8cf5c4da2861ffc6c7ba62c Mon Sep 17 00:00:00 2001 From: David Emms Date: Fri, 25 Nov 2016 17:30:36 +0000 Subject: [PATCH] reset LD_LIBRARY_PATH when calling external programs --- orthofinder/orthofinder.py | 11 +++++++++-- orthofinder/scripts/get_orthologues.py | 12 ++++++++++-- orthofinder/scripts/util.py | 11 +++++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/orthofinder/orthofinder.py b/orthofinder/orthofinder.py index 59ad7262..c4374cb4 100755 --- a/orthofinder/orthofinder.py +++ b/orthofinder/orthofinder.py @@ -55,10 +55,17 @@ with open(os.devnull, "w") as f: subprocess.call("taskset -p 0xffffffffffff %d" % os.getpid(), shell=True, stdout=f) # get round problem with python multiprocessing library that can set all cpu affinities to a single cpu +# Fix LD_LIBRARY_PATH when using pyinstaller my_env = os.environ.copy() if getattr(sys, 'frozen', False): -# my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] - my_env['LD_LIBRARY_PATH'] = '' + if 'LD_LIBRARY_PATH_ORIG' in my_env: + my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] + else: + my_env['LD_LIBRARY_PATH'] = '' + if 'DYLD_LIBRARY_PATH_ORIG' in my_env: + my_env['DYLD_LIBRARY_PATH'] = my_env['DYLD_LIBRARY_PATH_ORIG'] + else: + my_env['DYLD_LIBRARY_PATH'] = '' def RunBlastDBCommand(command): capture = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=my_env) diff --git a/orthofinder/scripts/get_orthologues.py b/orthofinder/scripts/get_orthologues.py index c22e194c..ea3e6de0 100755 --- a/orthofinder/scripts/get_orthologues.py +++ b/orthofinder/scripts/get_orthologues.py @@ -48,10 +48,18 @@ import blast_file_processor as BlastFileProcessor nThreads = util.nThreadsDefault + +# Fix LD_LIBRARY_PATH when using pyinstaller my_env = os.environ.copy() if getattr(sys, 'frozen', False): -# my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] - my_env['LD_LIBRARY_PATH'] = '' + if 'LD_LIBRARY_PATH_ORIG' in my_env: + my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] + else: + my_env['LD_LIBRARY_PATH'] = '' + if 'DYLD_LIBRARY_PATH_ORIG' in my_env: + my_env['DYLD_LIBRARY_PATH'] = my_env['DYLD_LIBRARY_PATH_ORIG'] + else: + my_env['DYLD_LIBRARY_PATH'] = '' class Seq(object): def __init__(self, seqInput): diff --git a/orthofinder/scripts/util.py b/orthofinder/scripts/util.py index 563059fd..d81b380a 100644 --- a/orthofinder/scripts/util.py +++ b/orthofinder/scripts/util.py @@ -49,10 +49,17 @@ picProtocol = 1 version = "1.1.2" +# Fix LD_LIBRARY_PATH when using pyinstaller my_env = os.environ.copy() if getattr(sys, 'frozen', False): -# my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] - my_env['LD_LIBRARY_PATH'] = "" + if 'LD_LIBRARY_PATH_ORIG' in my_env: + my_env['LD_LIBRARY_PATH'] = my_env['LD_LIBRARY_PATH_ORIG'] + else: + my_env['LD_LIBRARY_PATH'] = '' + if 'DYLD_LIBRARY_PATH_ORIG' in my_env: + my_env['DYLD_LIBRARY_PATH'] = my_env['DYLD_LIBRARY_PATH_ORIG'] + else: + my_env['DYLD_LIBRARY_PATH'] = '' def PrintNoNewLine(text): sys.stdout.write(text)