+ // Check whether the first python in PATH is the right one.
+ static string command = python2("python -tt");
+
+ if (command.empty()) {
+ // It was not, so check whether we can find it elsewhere in
+ // PATH, maybe with some suffix appended.
+ vector<string> const path = getEnvPath("PATH");
+ vector<string>::const_iterator it = path.begin();
+ vector<string>::const_iterator const end = path.end();
+ lyxerr << "Looking for python v2.x ...\n";
+ for (; it != end; ++it) {
+ QString const dir = toqstr(*it);
+ string const localdir = dir.toLocal8Bit().constData();
+ QDir qdir(dir);
+ qdir.setFilter(QDir::Files | QDir::Executable);
+ QStringList list = qdir.entryList(QStringList("python*"));
+ for (int i = 0; i < list.size() && command.empty(); ++i) {
+ string const binary = addName(localdir,
+ list.at(i).toLocal8Bit().constData());
+ command = python2(binary, true);
+ }
+ }
+
+ // Default to "python" if no usable binary was found.
+ if (command.empty()) {
+ lyxerr << "Warning: No python v2.x binary found.\n";
+ command = "python";
+ }
+
+ // Add the -tt switch so that mixed tab/whitespace
+ // indentation is an error
+ command += " -tt";
+ }