Использование Keyring в cx_Freeze: рекомендуемый бэкэнд недоступен

Я пытаюсь создать исполняемый файл, используя cx_Freeze из target.py, который имеет импорт ключей в коде. Мне удалось создать exe-файл, но выдает сообщение об ошибке: "Рекомендованный бэкэнд недоступен. Установите пакет keyrings.alt, если вы хотите использовать нерекомендованные бэкэнды. Подробности см. В README.rst". Я использовал PyInstaller, но получил ту же ошибку. Я нашел ссылку для ketrings.alt ( https://github.com/jaraco/keyrings.alt), но не знаю, как ее использовать. Итак, мой вопрос:

  1. Можно ли использовать связку ключей в cx_Freeze?
  2. Как мне использовать keyrings.alt?
  3. Если связка ключей не может быть использована в 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.

Другие вопросы по тегам