Вопрос

Установка Mercurial в Mac OS X 10.6 Snow Leopard

Я установил Mercurial 1.3.1 на Mac OS X 10.6 Snow Leopard из исходного кода, используя следующее:

cd ~/src
curl -O https://www.mercurial-scm.org/release/mercurial-1.3.1.tar.gz
tar -xzvf mercurial-1.3.1.tar.gz
cd mercurial-1.3.1
make all
sudo make install

При этом файлы сайтов-пакетов для Mercurial будут установлены в /usr/local/lib/python2.6/site-packages/.Я знаю, что при установке Mercurial из образа диска Mac файлы будут установлены в /Library/Python/2.6/site-packages/, который является каталогом site-packages для установки Python по умолчанию в Mac OS X.

У меня установлен Python 2.6.2+ как Framework с каталогом site-packages в:

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

При установке Mercurial таким образом мне приходится выдать:

PYTHONPATH=/usr/local/lib/python2.6/site-packages:"${PYTHONPATH}"

чтобы заставить Mercurial работать.

Вопросы

  • Как установить Mercurial из исходного кода, разместив пакеты сайта в другом каталоге?
  • Есть ли преимущество или недостаток в наличии пакетов сайта в текущем местоположении?Было бы лучше в одном из уже существующих каталогов сайтов-пакетов Python?
  • Нужно ли мне беспокоиться о правильной работе virtualenv, поскольку я изменил PYTHONPATH (или любые другие конфликты в этом отношении)?

Причины установки из исходного кода

Дэн Бенджамин из Hivelogic В своей статье представлены преимущества и инструкции по установке Mercurial из исходного кода. Установка Mercurial на Snow Leopard.

Это было полезно?

Решение

Тем более, что у вас есть Python 2.6, вы можете сделать что-то вроде python setup.py install --user, который установит Mercurial с префиксом ~/.local.Для этого вам не нужно менять PYTHONPATH, а просто добавить ~/.local/bin в свой PATH.

Что касается преимуществ и недостатков:Все зависит от того, как в целом выглядит ваш PYTHONPATH, поскольку его изменение естественным образом изменит порядок загрузки пакетов (что становится актуальным, если у вас установлена ​​одна версия Mercurial с одним префиксом, а другая — с другим).Обычно я пытаюсь поместить все пользовательские пакеты в определенную папку site-packages (скажем, /usr/local/lib/python2.6/site-packages).Снова:Если вы единственный человек, который будет использовать эти библиотеки, флаг --user, предоставляемый distutils Python 2.6, делает что-то подобное довольно простым (с добавлением ~/.local к пути поиска по умолчанию для модулей).

virtualenv должен работать нормально, пока вы постоянно используете PYTHONPATH.

Другие советы

Зачем использовать macports?питон easy_install это самый простой способ и без ошибок:

easy_install -U mercurial

Это всегда просто золотая пуля.

Установите mercurial или любой пакет Python в целом в домашний каталог пользователя.Таким образом, вы можете получить к ним доступ из любого Python (той же версии) или любого виртуального окружения.Видеть ПЭП 370 для получения подробной информации.

$ cd mercurial-x.y.z/
$ python2.6 setup.py install --user
$ ~/.local/bin/hg
...

Но почему вы хотите собирать Mercurial вручную?я использую Макпорты.

$ sudo port install mercurial
$ which hg
/opt/local/bin/hg

Обновлять:Сейчас я просто использую ПиПМ установить Mercurial в ~/.local/bin/hg.

как предположил Шридхар, macports отлично работает на нескольких архитектурах, а версии MacOsX + позволяют обновлять и многое другое:

$ port variants mercurial
mercurial has the variants:
   bash_completion: Completion support for bash
   zsh_completion: Install mercurial zsh completion file
$

чтобы вы могли использовать:

$ sudo port install mercurial +bash_completion
--->  Computing dependencies for mercurial
--->  Fetching mercurial
--->  Attempting to fetch mercurial-1.3.1.tar.gz from http://arn.se.distfiles.macports.org/python
--->  Attempting to fetch mercurial-1.3.1.tar.gz from http://www.selenic.com/mercurial/release/
--->  Verifying checksum(s) for mercurial
--->  Extracting mercurial
--->  Configuring mercurial
--->  Building mercurial
--->  Staging mercurial into destroot
--->  Installing mercurial @1.3.1_0+bash_completion
--->  Activating mercurial @1.3.1_0+bash_completion
--->  Cleaning mercurial
$

Все эти ответы кажутся сложными обычным пользователям Mac OS X, поскольку они специфичны для других установочных платформ.На данный момент веб-сайт Mercurial предлагает установочный пакет (сжатый в виде zip-файла).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top