|
From: | Jacob Hrbek |
Subject: | bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed" |
Date: | Tue, 18 Jan 2022 03:00:12 +0000 |
qbittorrent <=4.4.0 (current latest version) fails with:
```
Missing Python Runtime
Python is required to use the search engine but it does not seem
to be installed
```
which is triggered from `qbittorrent/src/gui/mainwindow.cpp`:
```cpp
/* https://github.com/qbittorrent/qBittorrent/blob/00f6bb7c8225285a7929426187a1513d247b582b/src/gui/mainwindow.cpp#L1847 */ void MainWindow::on_actionSearchWidget_triggered() { if (!m_hasPython && m_ui->actionSearchWidget->isChecked()) { const Utils::ForeignApps::PythonInfo pyInfo = Utils::ForeignApps::pythonI nfo(); // Not installed if (!pyInfo.isValid()) { m_ui->actionSearchWidget->setChecked(false); Preferences::instance()->setSearchEnabled(false); #ifdef Q_OS_WIN const QMessageBox::StandardButton buttonPressed = QMessageBox::question(this, tr("Missing Python Runtime") , tr("Python is required to use the search engine but it does not seem to be installed.\nDo you want to install it now?") , (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes); if (buttonPressed == QMessageBox::Yes) installPython(); #else QMessageBox::information(this, tr("Missing Python Runtime") , tr("Python is required to use the search engine but it does not seem to be installed.")); #endif return; } // Check version requirement if (!pyInfo.isSupportedVersion()) { m_ui-> ;actionSearchWidget->setChecked(false); Preferences::instance()->setSearchEnabled(false); #ifdef Q_OS_WIN const QMessageBox::StandardButton buttonPressed = QMessageBox::question(this, tr("Old Python Runtime") , tr("Your Python version (%1) is outdated. Minimum requirement: %2.\nDo you want to install a newer version now?") .arg(pyInfo.version, QLatin1String("3.5.0")) , (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes); if (buttonPressed == QMessageBox::Yes) installPython(); #else QMessageBox::information(this, tr("Old Python Runtime") , tr("Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work.\nMinimum requirement: %2.") .arg(pyInfo.version, QLatin1String("3.5.0"))); #endif return; } m_hasPython = true; m_ui->actionSearchWidget->setChecked(true); Preferences::instance()->setSearchEnabled(true); } displaySearchTab(m_ui->actionSearchWidget->isChecked()); } ```
To call `Utils::ForeignApps::pythonInfo()` definition in
`qbittorrent/src/base/utils/foreignapps.cpp` as:
```cpp
/* https://github.com/qbittorrent/qBittorrent/blob/5c0378a6845e3484023f4c76893ff9f0e5178460/src/base/utils/foreignapps.cpp#L272 */ PythonInfo Utils::ForeignApps::pythonInfo() { static PythonInfo pyInfo; if (!pyInfo.isValid()) { if (testPythonInstallation("python3", pyInfo)) return pyInfo; if (testPythonInstallation("python", pyInfo)) return pyInfo; #if defined(Q_OS_WIN) if (tes tPythonInstallation(findPythonPath(), pyInfo)) return pyInfo; #endif LogMsg(QCoreApplication::translate("Utils::ForeignApps", "Python not detected"), Log::INFO); } return pyInfo; } ```
Where:
```cpp
if (testPythonInstallation("python3", pyInfo)) ...
```
Is important as it's checking for a `python3` (or `python`)
executable in PATH that is not provided by guix's build procedure
-> The package has compatibility issues with GNU Guix and has
to be patched.
### Steps to reproduce:
0. Get qbittorrent on GNU Guix
1. Open the GUI: View > Search engine and observe the
highlighted error preventing to use the search engine
functionality
Relevants:
R1. https://github.com/qbittorrent/qBittorrent/issues/16139
-- Jacob Hrbek
publickey - kreyren@rixotstudio.cz - 1677db82.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |