在Mac OS X 10.6雪豹上安装Mercurial

2024-05-16 08:58:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在Mac OS X 10.6雪豹上安装Mercurial

我在Mac OS X 10.6 Snow Leopard上从源代码安装了Mercurial 1.3.1,使用以下命令:

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

这将在/usr/local/lib/python2.6/site-packages/中安装Mercurial的站点包文件。我知道从Mac磁盘映像安装Mercurial会将文件安装到/Library/Python/2.6/site-packages/,这是Mac OS X默认Python安装的site packages目录。

我已将Python2.6.2+作为框架安装,其站点包目录位于:

/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站点包目录中会更好吗?
  • 既然我修改了PYTHONPATH(或者其他冲突),我是否需要担心virtualenv是否正常工作?

从源安装的原因

HivelogicDan Benjamin在他的文章Installing Mercurial on Snow Leopard中提供了从源代码安装Mercurial的好处和说明。


Tags: 目录源代码站点osmaclibpackagessite
3条回答

特别是因为有了Python2.6,您可以做一些类似于python setup.py install --user的事情,它将以~/.local作为前缀安装Mercurial。您不必为此更改PYTHONPATH,只需将~/.local/bin添加到您的路径。

关于优点和缺点:这一切都取决于PYTHONPATH的总体外观,因为修改它会自然地修改包的加载顺序(如果一个版本的Mercurial安装了一个前缀,而另一个版本安装了不同的前缀,那么这一点就很重要了)。通常,我会尝试将所有自定义包放入特定的site packages文件夹(比如/usr/local/lib/python2.6/site packages)。再次重申:如果您是唯一使用这些lib的人,那么Python 2.6的distutils提供的--user标志将使这种事情变得非常简单(在模块的默认搜索路径中添加~/.local)。

virtualenv应该工作得很好,只要你的Python是一贯使用。

为什么需要使用macports?pythoneasy_install是最简单且无错误的方法:

easy_install -U mercurial

一直以来,这只是一颗简单的金子弹。

将mercurial或任何Python包安装到用户主目录中。因此,您可以从任何Python(同一版本)或任何virtualenv访问它们。有关详细信息,请参见PEP 370

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

但为什么要手动构建mercurial呢?我用macports

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

更新:现在,我只需使用PyPM将mercurial安装到~/.local/bin/hg

相关问题 更多 >