奇怪的import
錯誤阻止我安裝一個mercurial擴展。python import似乎在mercurial_keyring.py文件中的行爲不同
我試圖讓mercurial_keyring
擴展運行,這樣我就不必在每次爲項目使用mercurial時輸入我的用戶名和密碼。
我正在使用Python 2.7.1。我使用https://www.mercurial-scm.org/提供的二進制安裝了mercurial。
我安裝了keyring
和mercurial_keyring
與pip
。
我第一次嘗試加入這個添加的擴展~/.hgrc
:
[extensions]
...
mercurial_keyring =
如安裝說明here表示。但是,我得到了以下錯誤:
*** failed to import extension mercurial_keyring: No module named mercurial_keyring
從相同的安裝說明,我試着指着善變直接向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
的是沒有任何問題解決的
mercurial_keyring.py
線28
。實際上,任何import keyring
都可以在類和方法之外成功並在內部失敗!
只是爲了完整性考慮,我會提到,這個錯誤在mercurial_keyring.py
出現在PasswordStore
類的get_http_password
方法時,下面是試圖
return keyring.get_password(...)
有什麼想法?
我有這樣的感覺,我錯過了一些明顯的東西,但我花了很多時間試圖弄清楚這一點,谷歌迄今爲止並沒有特別有用。任何輸入將不勝感激。
運行'python -m site'時會得到什麼輸出? (你需要將它添加到問題中,它不會作爲註釋讀取) – ncoghlan 2011-03-03 01:11:16
我目前的懷疑是你的2.7安裝或系統2.6安裝有問題,例如mercurial正在使用他們,而你的手動測試正在使用其他。 – ncoghlan 2011-03-03 01:20:00