python import在mercurial_keyring.py文件中的行为似乎有所不同
问题内容:
一个奇怪的import
错误使我无法安装Mercurial扩展程序。
我正在尝试使mercurial_keyring
扩展程序运行,这样我每次使用Mercurial进行项目时都不必键入用户名和密码。
我正在使用Python 2.7.1。我使用https://www.mercurial-scm.org/提供的二进制文件安装了mercurial 。
我安装keyring
和mercurial_keyring
使用pip
。
我首先尝试通过将扩展名添加到来添加扩展名~/.hgrc
:
[extensions]
...
mercurial_keyring =
在安装说明表示这里。但是,出现以下错误:
*** failed to import extension mercurial_keyring: No module named mercurial_keyring
根据相同的安装说明,我尝试将mercurial直接指向该mercurial_keyring.py
文件,该文件起作用了。
[extensions]
...
hgext.mercurial_keyring = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial_keyring.py
事情似乎正在发展。
但是,当我尝试执行任何要求输入密码的命令时,都会被keyring
( 例如 )保存hg pull
,hg push
因此出现错误
abort: No module named keyring!
最令人困惑的部分是
import keyring
第28行中的mercurial_keyring.py
内容已解决,没有任何问题。实际上,任何import keyring
成功都在类和方法之外进行而在它们内部失败!
只是为了全面起见,我将尝试在尝试以下操作时在方法mercurial_keyring.py
中的PasswordStore
类中出现此错误get_http_password
return keyring.get_password(...)
有什么想法吗?
我感觉自己缺少明显的东西,但是我花了很多时间试图弄清楚这一点,到目前为止,Google并不是特别有用。任何输入将不胜感激。
问题答案:
很可能hg
是使用系统python(2.6)而不是已安装的2.7的副本运行的。
尝试在2.6mercurial_keyring
和keyring
2.6下安装,然后查看是否可以按预期运行。