首先,如果您想全局安装扩展,最好的选择可能是在全局hgrc
文件中执行此操作,而不是让用户在本地执行此操作。如果您在 中启用扩展/etc/mercurial/hgrc
,那么它将为所有用户启用。
您也可以在 中启用它们<install-root>/etc/mercurial/hgrc
,其中<install-root>
是安装 Mercurial 可执行文件的目录的父目录。例如,如果 Mercurial 通过 执行/opt/local/bin/hg
,则<install-root>
is /opt/local
。但是,这更脆弱,因为(设计)没有遵循符号链接。例如,如果用户将 Mercurial 链接到他们的~/bin/hg
, then~/etc/mercurial/hgrc
将被咨询。
如果您只是想让用户可以使用扩展,但默认情况下不启用它们,那么它们必须进入 Python 站点包目录,与普通扩展相同。假设 Mercurial 使用它,这将是您的全局 Python 安装;但是,您可以使用virtualenv
特定于 Mercurial 的 Python 安装,您可以在其中安装扩展和其他东西,而不会污染主要的 Python 安装。扩展的正常setup.py
脚本应该正确处理这两种情况(例如,setup.py
进化扩展的 将放在evolve.py
目录中site-packages/hgext
)。