有没有办法以编程方式确定 Bazaar 目录?如果有 bazaar 命令来确定插件目录,这将是最好的解决方案。
4 回答
在以下目录中搜索 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
根据 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 提供其他文档页面)
看看 的Bazaar configuration:
输出bzr version
。另请参阅 中的功能show_version
。bzrlib/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()
如果您的系统中安装了 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()]