Как я правильно устанавливаю Далвич для получения hg-мерзавца, работающего над Windows?

Я пытаюсь использовать hg-мерзавца Подвижное расширение в Windows (64-разрядный Windows 7, быть конкретным). Я имею Подвижный, и Мерзавец установил. У меня есть Python 2.5 (32-разрядный) установленный.

Я следовал инструкциям на http://hg-git.github.com/ для установки расширения. Начальная буква easy_install отказавший, потому что это не могло скомпилировать Далвич без Visual Studio 2003.

Я установил Далвич вручную:

  • клон мерзавца git://git.samba.org/jelmer/dulwich.git
  • CD Далвич
  • c:\Python25\python setup.py - чистая установка

Теперь, когда я выполняю easy_install hg-мерзавца, это успешно выполняется (так как зависимость Далвича удовлетворена).

В моем C:\Users\username\Mercurial.ini я имею:

[extensions]
hgext.bookmarks =
hggit =

Когда я ввожу 'hg' в командной строке, я вижу: "*** не удалось импортировать расширение hggit: Никакой модуль, названный hggit"

Смотря под моей папкой c:\Python25, единственная ссылка на hggit, который я вижу, Lib\site-packages\hg_git-0.2.1-py2.5.egg. Это, как предполагается, извлечено где-нибудь, или это должно работать как есть?

Так как это перестало работать, я делал попытку "более включенных" инструкций от страницы hg-мерзавца, которая предложила клонировать git://github.com/schacon/hg-git.git и сослаться на путь в моей Подвижной конфигурации. Я клонировал repo и изменил мой файл расширений для сходства с:

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

Теперь, когда я выполняю hg, я вижу: *** не удалось импортировать расширение hggit из c:\code\hg-git\hggit: Никакой модуль, названный dulwich.errors.

Хорошо, так, чтобы говорит мне, что это находит hggit теперь, потому что я вижу в hg-git\hggit\git_handler.py, что это звонит

from dulwich.errors import HangupException

Это заставляет меня думать, что Далвич не установлен правильно, или не в пути.

Обновление:

Из командной строки Python:

import dulwich

урожаи Import Error: No module named dulwich

Однако под C:\Python25\Lib\site-packages, у меня действительно есть dulwich-0.5.0-py2.5.egg папка, которая, кажется, заполняется. Это было создано упомянутыми выше шагами. Существует ли дополнительный шаг, который я должен сделать для создания этого частью Python "путь"?

Из командной строки Python (как предложено в одном из ответов):

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 может найти его. Что я могу сделать с той информацией?

52
задан CharlesB 20 July 2011 в 06:03
поделиться

4 ответа

Это заставляет меня думать, что dulwich неправильно установлен или не указан в пути .

Вы абсолютно правы. Бинарные дистрибутивы Mercurial для Windows «заморожены» - они используют код Python и интерпретатор, связанный с ними, и поэтому не зависят от пакетов, установленных в системе PYTHONPATH. Когда вы указываете путь к расширению hggit в Mercurial.ini, hg пытается импортировать его, используя прямой путь, но библиотека dulwich не импортируется явно hg и не связана с ее библиотекой, поэтому импорт не выполняется.

Можно добавить и Dulwich, и HgGit в library.zip, который устанавливается вместе с hg.exe, но для меня лучший способ - установить все из исходников, включая Mercurial, и выполнять команды с использованием файлов .bat, установленных в \ Python \ Скрипты. В этом случае вам необходимо:

  1. Установить Mercurial из исходников. Это создает «чистую» версию, потому что у пользователей Windows обычно нет Visual Studio или альтернативного компилятора для ускорения компиляции C.
  2. Установите Dulwich - я бы использовал последний снимок транка как для Git, так и для Dulwich.

    python setup.py --pure install

  3. Установить последний снимок HgGit

    python setup.py install

  4. Отредактируйте Mercurial.ini, чтобы включить hggit =

  5. Запустите Mercurial, используя свой \ Python \ Scripts \ hg.bat
16
ответ дан 7 November 2019 в 09:36
поделиться

Пока вы не заставите import dulwich работать, hggit не будет работать. Убедитесь, что файл яйца dulwich находится в вашем файле easy-install.pth в папке site-packages .

Для дальнейшей отладки вы можете попробовать спросить об этом pkg_resources :

import pkg_resources
pkg_resources.require("dulwich")
0
ответ дан 7 November 2019 в 09:36
поделиться

Попробуйте следующую конфигурацию (измените свой путь), которая у меня работает:

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

В моем случае, когда у меня пустое значение для hggit = , я получаю ту же ошибку, что и вы в этом случае . Но я могу импортировать dulwich без проблем в оболочку python, поэтому вам следует проверить свой easy-install.pth (как указал Дэвид), если он содержит dulwich-0.5. 0-py2.5.egg . Я также установил чистую версию dulwich .

4
ответ дан 7 November 2019 в 09:36
поделиться

Если вы можете установить TortoiseHg, он включает в себя dulwich и другие требования.

8
ответ дан 7 November 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: