diff --git a/src/plugins/python/pythonrunconfiguration.cpp b/src/plugins/python/pythonrunconfiguration.cpp index 7a370f7517e..9012556c81e 100644 --- a/src/plugins/python/pythonrunconfiguration.cpp +++ b/src/plugins/python/pythonrunconfiguration.cpp @@ -20,6 +20,8 @@ #include #include +#include +#include #include #include #include @@ -130,13 +132,23 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Id id) connect(PythonSettings::instance(), &PythonSettings::interpretersChanged, interpreterAspect, &InterpreterAspect::updateInterpreters); - QList interpreters = PythonSettings::detectPythonVenvs( + const QList interpreters = PythonSettings::detectPythonVenvs( project()->projectDirectory()); interpreterAspect->updateInterpreters(PythonSettings::interpreters()); Interpreter defaultInterpreter = interpreters.isEmpty() ? PythonSettings::defaultInterpreter() : interpreters.first(); if (!defaultInterpreter.command.isExecutableFile()) defaultInterpreter = PythonSettings::interpreters().value(0); + if (defaultInterpreter.command.isExecutableFile()) { + const IDeviceConstPtr device = DeviceKitAspect::device(target->kit()); + if (device && !device->handlesFile(defaultInterpreter.command)) { + defaultInterpreter = Utils::findOr(PythonSettings::interpreters(), + defaultInterpreter, + [device](const Interpreter &interpreter) { + return device->handlesFile(interpreter.command); + }); + } + } interpreterAspect->setDefaultInterpreter(defaultInterpreter); auto bufferedAspect = addAspect();