2009-08-05 14 views
8

Ho installato Mercurial 1.3 sulla mia macchina Windows 7. Non ho Python installato, ma Mercurial sembra essere OK con quello.Come funziona mercurial senza Python installato?

Come funziona?

Inoltre, è possibile forzare l'esecuzione di Mercurial su IronPython e sarà compatibile?

Grazie.

+0

Hmm. Non sono sicuro se vedrai questo: ho commentato il post di Martin per indicare la discussione su Mercurial sull'elenco di IronPython. A maggio sembrano avere * alcune * funzioni funzionanti, anche se sicuramente non tutte. – quark

risposta

17

Il programma di installazione di Windows Mercurial è confezionato utilizzando py2exe. Questo pone l'interprete python come una DLL all'interno di un file chiamato "library.zip".

Sulla mia macchina, è posto in "C: \ Program Files \ TortoiseHg \ library.zip"

Questo file zip contiene anche le librerie Python che sono richiesti da mercuriale.

Per una descrizione dettagliata di come mercurial è confezionato per Windows, consultare la pagina dello sviluppatore che descrive building windows installer.

3

Mercurial raggruppa all'interno i necessari binari di pitone, credo.

+0

Non sono riuscito a trovare alcun file binario di python. Inoltre, Mercurial dovrebbe usare (presumo) la libreria standard Python, quindi dovrebbe essere presente anche lì, ma non l'ho trovato neanche io. – Valentin

+0

Scusate, quando ho detto "entro", non intendevo "nella directory", intendevo dire che l'eseguibile/i per Mercurial effettivamente raggruppa il motore Python all'interno dell'eseguibile, è integrato. – Amber

+0

hg.exe è solo 17KB, ma c'è un library.zip (9MB), che non può essere aperto da WinZip, tutti i prereq ci possono essere? – Valentin

7

Poiché esiste un "library.zip" (9 MB), il pacchetto binario di Windows di Mercurial può essere costituito da py2exe, py2exe è un'estensione Python Distutils che converte gli script Python in programmi eseguibili di Windows, in grado di essere eseguito senza richiedere un'installazione Python.

6

Altri hanno risposto alla prima domanda: lasciami indovinare la seconda parte.

Mercurial utilizzerà normalmente alcune estensioni C per la velocità. Non puoi usare quelli con IronPython.

Ma abbiamo anche distribuito versioni Python pure di questi moduli e, a seconda di quanto implementa IronPython di un ambiente standard Python 2.4, quei moduli potrebbero essere compatibili. Ho visto resoconti su IRC su Jython (la porta Java di Python) essere in grado di fare alcune operazioni usando i moduli puri. Dovresti scaricare Mercurial e dare un'occhiata alla cartella mercurial/pure. Questi moduli devono semplicemente essere spostati su un livello di directory da trovare, lo script setup.py può farlo se si passa il flag --pure. Si prega di vedere la sua fonte o venire a parlare con noi sulla mailinglist/IRC Mercurial.

+0

Grazie, Martin, l'ho già provato e ho scoperto che Mercurial non funziona con IronPython. Non riesce da qualche parte nei file di interazione del sistema operativo. – Valentin

+0

Valentin: La discussione più recente sull'elenco di IronPython su questo argomento è da maggio. Segnalano diverse funzioni funzionanti, ma non tutte: http://lists.ironpython.com/pipermail/users-ironpython.com/2009-May/010200.html. In particolare questo è con * sviluppo * IronPython 2.6. – quark

Problemi correlati