Une bizarrerie import
m'empêche d'installer une extension mercuriale.
J'essaie d'obtenir le mercurial_keyring
afin que je n'aie pas à saisir mon nom d'utilisateur et mon mot de passe à chaque fois que j'utilise mercurial pour un projet.
J'utilise Python 2.7.1. J'ai installé mercurial avec le binaire fourni à l'adresse suivante https://www.mercurial-scm.org/ .
J'ai installé keyring
y mercurial_keyring
con pip
.
J'ai d'abord essayé d'ajouter l'extension en ajoutant ceci à ~/.hgrc
:
[extensions]
...
mercurial_keyring =
comme indiqué dans les instructions d'installation aquí . Cependant, j'ai obtenu l'erreur suivante :
*** failed to import extension mercurial_keyring: No module named mercurial_keyring
À partir des mêmes instructions d'installation, j'ai essayé de faire pointer mercurial directement sur le fichier mercurial_keyring.py
ce qui a fonctionné.
[extensions]
...
hgext.mercurial_keyring = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial_keyring.py
Et les choses semblaient aller de l'avant.
Cependant, lorsque j'essaie d'exécuter une commande mercuriale nécessitant mon mot de passe afin qu'il soit sauvegardé par keyring
( par exemple hg pull
, hg push
), j'obtiens l'erreur suivante
abort: No module named keyring!
Le plus déroutant, c'est qu'il existe une
import keyring
à la ligne 28 de mercurial_keyring.py
qui est résolu sans problème. En fait, tout import keyring
réussit en dehors des classes et des méthodes et échoue à l'intérieur de celles-ci !
Par souci d'exhaustivité, je précise que cette erreur se produit dans le cadre de la mercurial_keyring.py
dans le PasswordStore
dans la classe get_http_password
lorsque l'on tente d'obtenir ce qui suit
return keyring.get_password(...)
Qu'en pensez-vous ?
J'ai l'impression de passer à côté de quelque chose d'évident, mais j'ai passé beaucoup de temps à essayer de comprendre et Google n'a pas été d'une grande aide jusqu'à présent. Toute contribution sera grandement appréciée.