diff --git a/hrudelin_dockwidget.py b/hrudelin_dockwidget.py index e44f3c99e5fc0cfe15aff244a75a42406369ddcb..6a74189ae8eaae39a55d387c646983c1088a99ac 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 f25e29a5ab0a561adda5a6c613689b90a372cf16..2ba6596f0f17c76aed100d74429334553e4aee98 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)