Использование Keyring в cx_Freeze: рекомендуемый бэкэнд недоступен
Я пытаюсь создать исполняемый файл, используя cx_Freeze из target.py, который имеет импорт ключей в коде. Мне удалось создать exe-файл, но выдает сообщение об ошибке: "Рекомендованный бэкэнд недоступен. Установите пакет keyrings.alt, если вы хотите использовать нерекомендованные бэкэнды. Подробности см. В README.rst". Я использовал PyInstaller, но получил ту же ошибку. Я нашел ссылку для ketrings.alt ( https://github.com/jaraco/keyrings.alt), но не знаю, как ее использовать. Итак, мой вопрос:
- Можно ли использовать связку ключей в cx_Freeze?
- Как мне использовать keyrings.alt?
- Если связка ключей не может быть использована в cx_Freeze, есть ли способ конвертировать py-файлы в исполняемый файл, в котором есть импорт ключей?
Мой установочный код для cx_Freeze ниже.
import sys
import os from cx_Freeze
import setup, Executable
build_exe_options = {"packages":["keyring","selenium"]}
setup(name = "Name",version = "0.1",description = "Description",options = {"build_exe": build_exe_options},executables = [Executable(script="target.py")])
2 ответа
Следующий код работал для меня с cx_freeze.
import keyring
from keyring.backends import Windows
keyring.set_keyring(Windows.WinVaultKeyring())
В сценарии setup.py для cx_freeze добавьте "keyring" в список "пакетов".
В Ubuntu 18.04.6 я решил эту проблему, сначала взглянув на то, что не удалось:
python -c "import keyring.backends.SecretService as SS; SS.Keyring.priority"
(...)
RuntimeError: The Secret Service daemon is neither running nor activatable through D-Bus
Ссылка: https://github.com/jaraco/keyring/issues/258
И вот шаги, которые я выполнил (скорее всего, вам просто нужно сделать 3.):
[1.]
sudo apt-get install -y python-dbus
.
[2.]
pip install secretstorage
.
3.
sudo apt install gnome-keyring
.