Как я могу получить расширение keyring, работающее для mercurial в Ubuntu 18.04? - PullRequest
0 голосов
/ 15 января 2019

Я перепробовал десятки руководств по установке расширений mercurial и keyring в Ubuntu и никогда не мог заставить работать расширение keyring. Это было несложно под Windows.

Я установил Mercurial множеством разных способов. Я не уверен, имеет ли метод установки какое-либо отношение к связке ключей, но вот несколько вещей, которые я пробовал:

  • sudo apt-get install mercurial
  • sudo apt install mercurial
  • pip install mercurial
  • ... и т. Д.

Я даже использовал этот метод , где он компилирует Mercurial.

Все эти методы работают для ртути. Это работает. Я могу делать коммиты и т.д. Это установки keyring и mercurial_keyring, которые доставляют мне проблемы. Я установил оба из них, используя pip install. Когда я делаю команду вроде:

hg out http://somerepo

В данный момент я получаю следующее сообщение:

Не удалось найти обработчики для регистратора "keyring.backend"

Я чувствую, что есть короткий набор шагов, чтобы заставить работать брелок, но это просто ускользает от меня. Я сделал полдюжины попыток на новых виртуальных машинах и никогда не смог заставить это работать. (

1 Ответ

0 голосов
/ 25 января 2019
pip uninstall keyring

Причина в том, что в python уже установлена ​​библиотека python-keyring , которая конфликтует с библиотекой, установленной с pip. Кредиты на горе библиотеки Python в Ubuntu 18.04 от Kai Koenig

Редактировать: история на самом деле не закончилась, потому что она избавилась от этой ошибки, но не стала настоящим решением. Мне пришлось продолжить с этими командами

pip install keyrings.alt
pip install keyring

(да, я установил его обратно)

python -c "import keyring.util.platform_; print(keyring.util.platform_.config_root())"

Это взято из Документация по связке ключей . Оказалось, что моя папка конфигурации, показанная этой командой, не была создана, поэтому я сделал:

mkdir ~/.local/share/python_keyring
vi ~/.local/share/python_keyring/keyringrc.cfg

Мне также пришлось создать файл .cfg и поместить его внутрь (на моем MacOS Mojave!):

[backend]
default-keyring=keyring.backends.OS_X.Keyring

Теперь все работает нормально, пароль больше не спрашивается

...