Установка Mercurial в Mac OS X 10.6 Snow Leopard
-
13-09-2019 - |
Вопрос
Установка 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-файла).