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

Установка 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 Disk Image будет устанавливать файлы в /Library/Python/2.6/site-packages/, который является каталогом пакетов сайтов для установки Mac OS X по умолчанию Python.

У меня есть Python 2.6.2+, установленный в качестве Framework с его каталогом сайтов-пакетов в:

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

Когда Mercurial установлен таким образом, я должен указать:

PYTHONPATH =/USR/локальные/Library/python2.6/сайт-пакеты: "$ {PYTHONPATH}"

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

Вопросы

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

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

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

easy_install -U mercurial

Это просто простая золотая пуля, все время.

Ответ 3

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

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

Но почему вы хотите создать меркурий вручную? Я использую macports.

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

Обновление. В настоящее время я просто использую PyPM для установки mercurial в ~/.local/bin/hg.

Ответ 4

как было предложено Sridhar, 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
$

Ответ 5

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