Vraag Hoe installeer ik dulwich correct om hg-git werkend op Windows te krijgen?


Ik probeer de hg-git Mercurial-extensie op Windows te gebruiken (Windows 7 64-bit, om precies te zijn). Ik heb Mercurial en Git geïnstalleerd. Ik heb Python 2.5 (32-bits) geïnstalleerd.

Ik volgde de instructies op http://hg-git.github.com/ om de extensie te installeren. De eerste easy_install is mislukt omdat Dulwich zonder Visual Studio 2003 niet kon worden gecompileerd.

Ik heb dulwich handmatig geïnstalleerd door:

  • git clone git: //git.samba.org/jelmer/dulwich.git
  • cd dulwich
  • c: \ Python25 \ python setup.py - pure installatie

Nu, wanneer ik easy_install hg-git uitvoer, slaagt het (omdat de dulwich-afhankelijkheid is voldaan).

In mijn C: \ Users \ gebruikersnaam \ Mercurial.ini, heb ik:

[extensions]
hgext.bookmarks =
hggit =

Wanneer ik 'hg' typ bij een opdrachtprompt, zie ik: "*** kan extensie hggit niet importeren: Geen module met de naam hggit"

Kijkend onder mijn c: \ Python25 map, de enige verwijzing naar hggit die ik zie is Lib\site-packages\hg_git-0.2.1-py2.5.egg. Moet dit ergens worden geëxtraheerd, of zou het moeten werken zoals het is?

Aangezien dat niet lukte, probeerde ik de "meer betrokken" instructies van de hg-git pagina die suggereerde klonen git: // github.com/schacon/hg-git.git en verwijzend naar het pad in mijn Mercurial-configuratie. Ik heb de repo gekloond en mijn extensiebestand gewijzigd om er als volgt uit te zien:

[extensions]
hgext.bookmarks =
hggit = c:\code\hg-git\hggit

Als ik nu hg draai, zie ik: *** kan extensie hggit van c: \ code \ hg-git \ hggit niet importeren: Geen module met de naam dulwich.errors.

Ok, dus dat zegt me dat het nu hggit is, omdat ik kan zien in hg-git \ hggit \ git_handler.py dat het roept

from dulwich.errors import HangupException

Dat doet me denken dat dulwich niet correct is geïnstalleerd, of niet op het pad.

Bijwerken:

Vanaf de opdrachtregel van Python:

import dulwich

opbrengsten Import Error: No module named dulwich

Onder C: \ Python25 \ Lib \ sitepakketten heb ik echter een map dulwich-0.5.0-py2.5.egg die lijkt te zijn gevuld. Dit is gemaakt door de bovenstaande stappen. Is er nog een extra stap die ik moet nemen om het onderdeel te maken van het Python-pad?

Vanaf de Python-opdrachtregel (zoals voorgesteld in een van de antwoorden):

import pkg_resources
pkg_resources.require('dulwich')

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

Dus wat zegt mij dat? Het importeren van dulwich mislukt, maar blijkbaar kunnen pkg_resources dit vinden. Wat kan ik met die informatie doen?


49
2018-03-02 04:40


oorsprong


antwoorden:


Dat doet me denken dat dulwich dat niet is   correct geïnstalleerd, of niet in de   pad.

Je hebt helemaal gelijk. Mercurial binaire distributies voor Windows zijn 'bevroren' - ze gebruiken de Python code en interpreter gebundeld met hen en daarom onafhankelijk van pakketten geïnstalleerd in het systeem PYTHONPATH. Wanneer u pad naar hggit-extensie opgeeft in Mercurial.ini, probeert hg deze te importeren met behulp van het directe pad, maar de dulwich-bibliotheek wordt niet expliciet geïmporteerd door hg en wordt niet gebundeld met de bibliotheek, dus het importeren mislukt.

Het is mogelijk om zowel Dulwich als HgGit toe te voegen aan library.zip die samen met hg.exe is geïnstalleerd, maar voor mij is de beste manier om alles te installeren, van bron inclusief Mercurial en opdrachten uit te voeren met .bat-bestanden die zijn geïnstalleerd in \ Python \ Scripts. In dit geval moet u:

  1. Installeer Mercurial van bron. Dit bouwt een "pure" versie, omdat Windows-gebruikers meestal geen Visual Studio of alternatieve compiler hebben voor het compileren van C-snelheden.
  2. Installeer Dulwich - ik zou de nieuwste koffer gebruiken momentopname voor zowel Git als Dulwich.

    python setup.py - pure installatie

  3. Installeer de nieuwste HgGit momentopname

    python setup.py installeren

  4. Bewerk Mercurial.ini om in te schakelen hggit =

  5. Start Mercurial met uw \ Python \ Scripts \ hg.bat

16
2018-04-28 22:25



Ik vond een eenvoudiger oplossing op http://candidcode.com/2010/01/12/a-guide-to-converting-from-mercurial-hg-to-git-on-a-windows-client/

En toen vond ik zelf een nog eenvoudiger oplossing:

De hg-git Mercurial extensie op Windows gebruiken:

  1. installeer de officiële Mercurial-binaries
  2. zet dulwich folder van dulwich sources en hggit folder van hg-git bronnen naar de root van library.zip in de installatiemap van Mercurial
  3. voeg het volgende toe aan% USERPROFILE% \ Mercurial.ini:

[extensions]
hgext.bookmarks=
hggit=

Voor SSH-ondersteuning hebt u plink.exe nodig van de PuTTY-familie. Daarna zou je het volgende aan Mercurial.ini moeten toevoegen:

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

Wanneer u voor de eerste keer verbinding maakt met een SSH-server, moet u putty.exe starten en proberen er verbinding mee te maken. Het voegt de vingerafdruk van de serversleutel toe aan het register. Anders zal plink u vragen om de vingerafdruk te accepteren, maar deze accepteert geen invoer.

U kunt puttygen.exe gebruiken om persoonlijke sleutels te genereren. Gebruik sleutels zonder een wachtwoordzin of gebruik de ssh-authenticatie-agent Pageant.exe.


10
2017-08-09 15:28



Als je TortoiseHg kunt installeren, bevat het dulwich en andere vereisten.


8
2018-04-02 03:57



Probeer configuratie te volgen (verander naar uw pad), wat voor mij werkt:

[extensions]
; hg-git extention
hgext.bookmarks =
hggit = C:\Python26\Lib\site-packages\hg_git-0.2.1-py2.6.egg\hggit

In mijn geval als ik er lege waarde voor heb hggit =, Krijg ik dezelfde fout als in dit geval. Maar ik kan import dulwich zonder probleem in python shell, dus je moet je controleren easy-install.pth (zoals opgemerkt door David) als het bevat dulwich-0.5.0-py2.5.egg. Ik heb de pure versie van geïnstalleerd dulwich ook.


4
2018-03-23 22:37



Totdat je krijgt import dulwich werken, hggit zal niet werken. Controleer dat de dulwich eierdossier is in uw easy-install.pth bestand onder site-packages.

Voor verdere debugging kun je het proberen pkg_resources over het:

import pkg_resources
pkg_resources.require("dulwich")

0
2018-03-12 11:48



Ik kwam ook dit probleem tegen met dulwich.errors. In plaats van alles vanuit het niets te installeren. Ik heb zojuist Dulwich gekopieerd van mijn standaard site-pakketten naar de Mercurial-sitepakketten. werkte zonder problemen.


0
2017-11-22 05:12



Ik kreeg deze fout ook na het downloaden van de nieuwste Tortoisehg en ervoor te zorgen dat de hggit-plug-in was geïnstalleerd en mijn .ini & hgrc-bestanden hadden de juiste invoer om hggit in te schakelen.

Blijkt dat mijn probleem was dat ik zowel kwik als schildpad op mijn pad had. Dus toen ik hg-opdrachten uitvoerde, gebruikte het de hg.exe in de map mercurial in tegenstelling tot de hg.exe in de torsoisehg-directory.

Dit is logisch, maar mijn kwikinstallatie had geen plug-ins. Mijn oplossing was om mercurial van mijn pad te verwijderen, zodat hg-opdrachten door de tortoisehg-directory gaan omdat deze volledig is gebundeld. Merk echter op dat de aanbevolen optie is om Mercurual te upgraden naar een versie die de plug-ins heeft die men nodig heeft, maar dit is wat voor mij werkte. Ik heb geprobeerd de library.zip in mercurial te vervangen door die in tortoisehg en dit werkte, maar het leidde tot andere fouten zoals je je kunt voorstellen.

Het antwoord van @ techtonik bracht me op deze weg waar ik dankbaar voor ben.

Samenvatting: verifieer welke hg exe uw hg-opdrachten uitvoert door uw pad te controleren, omdat hg.exe de plug-ins om welke reden dan ook niet kan vinden.


0
2018-02-01 20:21



Gebaseerd op techtonik's uitleg van de reden voor de falende import van dulwich.errors, Ik vond een oplossing die voor mij eenvoudiger lijkt dan de al voorgestelde:

Op de Mercurial-downloadpagina er wordt aangeboden

kwikmiddel <x.y.z> voor Python 2.7 op Windows x86 (broninstallatie)

en

kwikmiddel <x.y.z> voor Python 2.7 op Windows x64 (broninstallatie)

als .EXE-bestanden die installeer Mercurial als een Python-module in een bestaande Python 2.7 (x86 of x64) installatie.

Als ook hg-git en dulwich op deze Python-installatie zijn geïnstalleerd, moeten de importfouten verdwijnen.

Als u niet zeker weet wat u nu moet doen, hoop ik dat deze stapsgewijze uitleg helpt:

voorwaarden

  • Python 2.7 is geïnstalleerd
  • <python 2.7 install dir> en <python 2.7 install dir>\Scripts zijn in de PATH omgevingsvariabele
  • hg-git (en dulwich) zijn geïnstalleerd in deze Python-installatie via de instructies van hier

Stappen

  1. De-installeer alle bestaande Mercurial-installaties
  2. Download en installeer een van de hierboven geciteerde EXE-bestanden, afhankelijk van of uw Python 2.7-installatie 32bit of 64bit is (als u de foutmelding "Python 2.7 kan niet worden gevonden in register" vindt, heeft u waarschijnlijk de andere nodig).

Nu hg clone <some git repo> zou op de console moeten werken.


0
2018-01-22 01:43



sudo apt-get install python-dev # Dam je afhankelijkheid!

sudo easy_install dulwich

Succes!


-2
2017-08-14 19:06