2009-08-05 32 views
8

Tengo Mercurial 1.3 instalado en mi máquina con Windows 7. No tengo Python instalado, pero Mercurial parece estar bien con eso.¿Cómo funciona mercurial sin Python?

¿Cómo funciona?

Además, ¿es posible forzar la ejecución de Mercurial en IronPython y será compatible?

Gracias.

+0

Hmm. No estoy seguro de que veas esto: comenté la publicación de Martin para señalar la discusión de Mercurial en la lista de IronPython. A partir de mayo parecen tener * algunas * características funcionando, aunque definitivamente no todas. – quark

Respuesta

17

El instalador de ventanas Mercurial se empaqueta utilizando py2exe. Esto coloca el intérprete de Python como una DLL dentro de un archivo llamado "library.zip".

En mi máquina, que se coloca en "C: \ Archivos de programa \ TortoiseHg \ library.zip"

Este archivo zip contiene también las bibliotecas de Python que son requeridos por mercurial.

Para obtener una descripción detallada de cómo mercurial se empaqueta para Windows, consulte la página del desarrollador que describe building windows installer.

3

Mercurial reúne los binarios necesarios de python, creo.

+0

No pude encontrar ningún binario de Python allí. Además, Mercurial debería usar (supongo) la biblioteca estándar de Python, por lo que debería estar presente también allí, pero tampoco la encontré. – Valentin

+0

Lo siento, cuando dije "dentro", no quise decir "en el directorio", quise decir que los ejecutables de Mercurial agrupan realmente el motor de Python dentro del ejecutable, está integrado. – Amber

+0

hg.exe tiene solo 17KB, pero hay una library.zip (9MB), que WinZip no puede abrir, ¿pueden estar todos los prereq allí? – Valentin

7

Dado que hay un "library.zip" (9MB), el paquete binario de Mercurial puede ser hecho por py2exe, py2exe es una extensión de Python Distutils que convierte scripts de Python en programas ejecutables de Windows que pueden ejecutarse sin requerir una instalación de Python.

6

Otros han respondido la primera pregunta, déjenme dar una idea acerca de la segunda parte.

Mercurial normalmente usará algunas extensiones C para la velocidad. No puedes usar esos con IronPython.

Pero también enviamos versiones puras de Python de estos módulos, y dependiendo de cuánto IronPython implemente un entorno Python 2.4 estándar, esos módulos podrían ser compatibles. He visto informes en IRC sobre Jython (el puerto de Java de Python) pudiendo hacer algunas operaciones usando los módulos puros. Debería descargar Mercurial y echar un vistazo a la carpeta mercurial/pure. Estos módulos simplemente tienen que moverse un nivel de directorio para encontrarse, el script setup.py puede hacer esto si pasa el indicador --pure. Por favor, consulte su fuente o venga a hablar con nosotros en la lista de correo de Mercurial/IRC.

+0

Gracias, Martin, ya lo he probado, y encontré que Mercurial no funciona con IronPython. Se produce un error en algún lugar de los archivos de interacción del sistema operativo. – Valentin

+0

Valentin: la discusión más reciente en la lista de IronPython sobre este tema es de mayo. Informan que funcionan varias funciones, pero no todas: http://lists.ironpython.com/pipermail/users-ironpython.com/2009-May/010200.html. Notablemente esto es con el * desarrollo * IronPython 2.6. – quark

Cuestiones relacionadas