没有安装Python,Mercurial如何工作?
我在我的Windows 7电脑上安装了Mercurial 1.3。虽然我没有安装Python,但Mercurial似乎也能正常工作。
这是怎么回事呢?
另外,能不能强制让Mercurial在IronPython上运行?这样会兼容吗?
谢谢。
4 个回答
其他人已经回答了第一个问题——让我来猜测一下第二部分。
Mercurial 通常会使用一些 C 语言扩展来提高速度。但是,你不能在 IronPython 中使用这些扩展。
不过,我们也提供了这些模块的纯 Python 版本。根据 IronPython 对标准 Python 2.4 环境的实现程度,这些模块可能是兼容的。我在 IRC 上看到过关于 Jython(Python 的 Java 版本)能够使用这些纯模块进行一些操作的报告。你可以下载 Mercurial,看看 mercurial/pure
文件夹。这些模块只需要上移一个目录就能被找到,如果你传递 --pure
参数,setup.py
脚本可以做到这一点。请查看它的源代码,或者来 Mercurial 的邮件列表/IRC 上和我们聊聊。
因为有一个名为“library.zip”的文件(大小为9MB),所以Mercurial的Windows版本可能是通过py2exe制作的。py2exe是一个Python的工具扩展,它可以把Python脚本转换成可以直接在Windows上运行的程序,这样就不需要安装Python了。
Mercurial的Windows安装程序是用py2exe这个工具打包的。这个工具会把Python的解释器放在一个叫“library.zip”的文件里,实际上是作为一个DLL文件存在。
在我的电脑上,这个文件放在“C:\Program Files\TortoiseHg\library.zip”这个位置。
这个zip文件里还包含了Mercurial所需要的Python库。
如果你想了解Mercurial是如何在Windows上打包的,可以查看开发者页面,里面有关于构建Windows安装程序的详细说明。