From 4ccc89dad58bed7dde504fe432f74befd929e034 Mon Sep 17 00:00:00 2001 From: Julien Veyssier <eneiluj@posteo.net> Date: Tue, 28 Apr 2020 19:29:52 +0200 Subject: [PATCH] attempt to implement macos compat, crashing in parallel step2 Signed-off-by: Julien Veyssier <eneiluj@posteo.net> --- hrudelin_dockwidget.py | 8 +++++++- pluginUtils/tools.py | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hrudelin_dockwidget.py b/hrudelin_dockwidget.py index e44f3c9..6a74189 100644 --- a/hrudelin_dockwidget.py +++ b/hrudelin_dockwidget.py @@ -45,11 +45,17 @@ from hrudelin.pluginUtils.tools import isWindows, isMac, which, prepareGrassEnv from multiprocessing import cpu_count import multiprocessing -if platform.system() == 'Windows': +#if platform.system() == 'Windows': +if isWindows(): path = os.path.abspath(os.path.join(sys.exec_prefix, '../../bin/pythonw3.exe')) multiprocessing.set_executable(path) sys.argv = [None] print('fix multiprocess for windows in plugin %s'%os.path.abspath(os.path.join(sys.exec_prefix, '../../bin/pythonw3.exe'))) +elif isMac(): + path = os.path.abspath(os.path.join(sys.exec_prefix, 'bin/python3')) + multiprocessing.set_executable(path) + sys.argv = [None] + print('fix multiprocess for Mac in plugin %s'%os.path.abspath(os.path.join(sys.exec_prefix, 'bin/python3'))) prepareGrassEnv() from hrudelin.hrudelinCore.modules.hrudelin_1_init import main as main1 diff --git a/pluginUtils/tools.py b/pluginUtils/tools.py index f25e29a..2ba6596 100644 --- a/pluginUtils/tools.py +++ b/pluginUtils/tools.py @@ -45,6 +45,12 @@ def prepareGrassEnv(): pass elif isMac(): + qgisContents = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(sys.exec_prefix)))) + for grassVersion in ['74', '75', '76', '77', '78', '79']: + candidatePath = os.path.join(qgisContents, 'Resources', 'grass7') + if os.path.isfile(os.path.join(candidatePath, 'bin', 'grass%s' % grassVersion)): + grassBasePath = candidatePath + break pass else: grassBasePath = subprocess.check_output(['grass', '--config', 'path']).decode('utf-8').rstrip(os.linesep) -- GitLab