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)