1

有没有办法以编程方式确定 Bazaar 目录?如果有 bazaar 命令来确定插件目录,这将是最好的解决方案。

4

4 回答 4

2

在以下目录中搜索 Bazaar 插件:

* <pythonlib>/site-packages/bzrlib/plugins/ 
      (where <pythonlib> is something like usr/lib/python2.4, 
       depending on your installation)

* $HOME/.bazaar/plugins/

BZR_PLUGIN_PATH您也可以通过环境变量设置集市插件目录。

更多关于集市插件的信息:http: //bazaar-vcs.org/BzrPlugins

于 2009-12-07T18:27:56.297 回答
2

根据 bazaar网站,默认情况下会在其中查找用户插件~/.bazaar/plugins,但可能会被环境变量覆盖BZR_PLUGIN_PATH。所以测试是否设置了这个变量,否则返回默认值。在蟒蛇中:

import os
user_plugin_path = os.environ.get('BZR_PLUGIN_PATH', '~/.bazaar/plugins')

编辑:这适用于基于 unix 的系统,对于 windows,使用插件路径是$APPDATA/bazaar/2.0/plugins.

系统范围的插件位于bzrlib/plugins,请参阅此处页面下方的安装插件。用于distutils获取前缀(例如 /usr/lib/python2.4/site-packages/bzrlib/plugins/):

from distutils.sysconfig import get_python_lib
global_plugin_path = os.path.join(get_python_lib(), 'bzrlib/plugins')

(感谢 MYYN 提供其他文档页面)

于 2009-12-07T18:29:33.427 回答
1

看看 的Bazaar configuration:输出bzr version。另请参阅 中的功能show_versionbzrlib/version.py

对于配置目录使用:

from bzrlib import config
print config.config_dir()

或者,对于用户插件路径(请参阅bzrlib/plugin.py):

from bzrlib import plugin
print plugin.get_user_plugin_path()

有关插件路径的完整列表:

from bzrlib import plugin
print plugin.get_standard_plugins_path()
于 2009-12-07T18:30:15.517 回答
1

如果您的系统中安装了 bzr,您可以使用以下 Python 片段来获取 bzr 寻找插件的目录列表:

 >>> import os
 >>> from bzrlib import plugin
 >>> list_of_bzr_plugins_paths = [os.path.abspath(p) 
         for p in plugin.get_standard_plugins_path()]
于 2009-12-07T20:09:16.253 回答