Mercurial扩展无法在Windows 7 x64中运行?

Sam*_*ham 15 mercurial tortoisehg windows-7 windows-7-x64

我们正在试驾Mercurial.我们不希望每次与存储库交互时都输入我们的用户/传递,因此我们设置了mercurial_keyring扩展.我们:

  • 安装Python 2.6.5(32或64位,具体取决于系统)
  • 已安装的setuptools(适用于easy_install.exe)
  • easy_install密钥环
  • easy_install mercurial_keyring

然后在该[auth]部分对%userprofile%/ mercurial.ini进行了适当的更改.它在我的同事的计算机(32位xp sp3)上工作正常,但它在我的机器上不起作用(Windows 7 Ultimate x64).另外值得注意的是,必须在Win 7 x64上从源代码构建setuptools(python setup.py bdist_wininst然后运行生成的setuptools-0.6c11.win-amd64.exe).

仅使用Mercurial 1.5二进制安装(.msi)中的hg.exe,运行hg.exe时出现此错误:

***无法导入扩展名mercurial_keyring:没有名为mercurial_keyring的模块

我试图改变我的mercurial.ini,指定mercurial_keyring.py文件的路径,而不是让mercurial找到它(因为它在PYTHONPATH中).

旧:

[extensions]
mercurial_keyring =
Run Code Online (Sandbox Code Playgroud)

新:

[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py
Run Code Online (Sandbox Code Playgroud)

错误更改为:

abort:无法导入模块密钥环!

因此,在提供mercurial_keyring扩展的路径时,仍然无法找到依赖密钥环模块.

经过进一步调查,似乎NO扩展工作.他们都产生错误:

***无法导入扩展名[扩展名]:没有名为[模块名称]的模块

看来,当运行hg.exe时,它不知道PYTHONPATH.我试过了:

  • Python 2.6.5 32位
  • Python 2.6.5 64位
  • 使用MinGW从源代码构建Mercurial 1.5
  • 使用MSVC9从源代码构建Mercurial 1.5
  • 使用1.5二进制dist(.msi)中的hg.exe
  • 从源代码构建时,在c:\ python26\scripts中使用hg.py
  • %userprofile%/ mercurial.ini中的各种配置
  • 使用setuptools(easy_install.exe)安装密钥环和mercurial_keyring
  • 从源代码构建密钥环和mercurial_keyring(python setup.py bdist_wininst)

什么都行不通.我最接近的是从源代码构建时使用hg.py. 它至少不会给我错误,并且当我输入我的凭据时实际创建%userprofile%/ wincrypto_pass.cfg.但是在后续请求中,它不会自动输入凭据.它再次提示我.

有趣的是,TortoiseHG 正在使用密钥环.我无法让它在命令行上运行.我认为Win 7 x64正在发生一些阻止mercurial(hg.exe)看到PYTHONPATH的事情,因此无法找到任何已安装的模块.

有没有人在Win 7 x64上有扩展功能?具体用二进制安装mercurial(不是hg.py)?

更新 我现在找到了合适的工作.由于TortoiseHG 不会与mercurial_keyring工作,我只是改变了我的PATH设置为包括tortoiseHG文件夹,而不是C:\善变.现在当我在命令行输入"hg"时,它正在使用tortoiseHG文件夹中的hg.exe,它可以正常工作.同样,这仍然是Win 7 x64上的mercurial扩展的问题.答案欢迎.

Sam*_*ham 18

用我以前的更新回答我自己的问题,因为还没有其他的接受者.

适合的解决方法:由于TortoiseHG 不会与mercurial_keyring工作,我只是改变了我的PATH 包括了tortoiseHG文件夹,排除 C:\善变.现在当我在命令行输入"hg"时,它正在使用tortoiseHG文件夹中的hg.exe,它可以与密钥环一起使用.