首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确安装dulwich以使hg在Windows上工作?

如何正确安装dulwich以使hg在Windows上工作?
EN

Stack Overflow用户
提问于 2010-03-02 04:40:47
回答 11查看 15.3K关注 0票数 60

我试图在Windows上使用hg扩展(具体而言,是Windows 7 64位)。我安装了Mercurial和Git。我安装了Python2.5(32位)。

我按照http://hg-git.github.com/上的说明安装了扩展程序。初始easy_install失败,因为它无法在没有Visual 2003的情况下编译dulwich。

我通过以下方式手动安装了dulwich:

  • git克隆git://git.samba.org/jelmer/dulwich.git
  • cd dulwich
  • C:\python 25\python setup.py --纯安装

现在,当我运行easy_install hg时,它成功了(因为满足了dulwich依赖)。

在我的C:\Users\username\Mercurial.ini中,我有:

代码语言:javascript
复制
[extensions]
hgext.bookmarks =
hggit =

当我在命令提示符下输入'hg‘时,我看到:“*未能导入扩展名hggit:没有名为hggit的模块”

在我的c:\Python25 25文件夹下,我看到的对hggit的唯一引用是Lib\site-packages\hg_git-0.2.1-py2.5.egg。这应该是在某个地方提取的,还是应该像-原样?

由于失败,我尝试了hg页面中的“更多涉及”指令,建议克隆git://github.com/schacon/hg-git.git并引用我的Mercurial配置中的路径。我克隆了回购程序,并将我的扩展名文件更改为:

代码语言:javascript
复制
[extensions]
hgext.bookmarks =
hggit = c:\code\hg-git\hggit

现在,当我运行hg时,我看到:*未能从c:\code\ hggit \hggit:没有名为dulwich.errors的模块导入扩展hggit。

好的,这告诉我现在正在查找hggit,因为我可以在hggit\hggit\git_handler.py中看到它调用的内容。

代码语言:javascript
复制
from dulwich.errors import HangupException

这让我觉得dulwich没有正确安装,或者没有安装在路径上。

更新:

在Python命令行中:

代码语言:javascript
复制
import dulwich

产率Import Error: No module named dulwich

但是,在C:\Python25 25\Lib\site-packages下,我确实有一个Dulw治-0.5.0-py2.5的鸡蛋文件夹,该文件夹似乎已被填充。这是由上述步骤创建的。为了使它成为Python“路径”的一部分,我还需要采取其他步骤吗?

来自Python命令行(如其中一个答案中的建议):

代码语言:javascript
复制
import pkg_resources
pkg_resources.require('dulwich')

产率[dulwich 0.5.0 (c:\python25\lib\site-packages\dulwich-0.5.0-py2.5.egg)]

那又能告诉我什么?进口杜尔威奇失败了,但显然pkg_resources可以找到它。我能用这些信息做什么?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-04-28 22:25:07

这让我觉得dulwich没有正确安装,或者没有安装在路径上。

你说的完全正确。用于Windows的Mercurial二进制发行版是“冻结”的--它们使用与它们捆绑在一起的Python代码和解释器,因此独立于安装在system中的包。当您在Mercurial.ini中指定hggit扩展的路径时,hg尝试使用直接路径导入它,但是dulwich不是由hg显式导入的,也没有绑定到它的库中,因此导入失败。

可以同时向安装在HgGit中的library.zip中添加Dulwich和hg.exe,但对我来说,最好的方法是从源代码安装所有东西,包括Mercurial和执行命令,使用安装到\Python中的.bat文件。在这种情况下,您需要:

  1. 来源为安装汞。这会构建“纯”版本,因为Windows用户通常没有Visual或可供选择的编译器来编译C加速程序。
  2. 安装Dulwich我会使用最新的主干快照的Git和Dulwich。 python setup.py --纯安装
  3. 安装最新的HgGit 快照 python setup.py安装
  4. 编辑Mercurial.ini以启用hggit =
  5. 使用您的\Python\Scripts\hg.bat启动汞
票数 16
EN

Stack Overflow用户

发布于 2011-08-09 15:28:17

我在http://candidcode.com/2010/01/12/a-guide-to-converting-from-mercurial-hg-to-git-on-a-windows-client/找到了一个更简单的解决方案

然后我自己找到了一个更简单的解决方案:

要在Windows上使用hg扩展:

  1. 安装正式的汞二进制文件
  2. 在Mercurial安装文件夹中,将dulwich文件夹和hg-git源的dulwich文件夹放在library.zip的根目录中。
  3. 在%USERPROFILE%\Mercurial.ini中添加以下内容:
代码语言:javascript
复制
[extensions]
hgext.bookmarks=
hggit=

要获得SSH支持,您需要来自plink.exe家族的PuTTY。在此之后,您应该向Mercurial.ini添加以下内容:

代码语言:javascript
复制
[ui]
username = John Doe <foo@example.com>
ssh=d:/home/lib/dll/plink.exe -i "d:/home2/ssh-private-key.ppk"

当第一次连接到SSH服务器时,应该启动putty.exe并尝试使用它进行连接。它将向注册表添加服务器密钥指纹。否则,plink会要求您接受指纹,但它不接受任何输入。

您可以使用puttygen.exe生成私钥。要么使用没有密码的密钥,要么使用Pageant.exe ssh身份验证代理。

票数 12
EN

Stack Overflow用户

发布于 2010-04-02 03:57:15

如果您可以安装TortoiseHg,它包括dulwich和其他要求。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2360944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档