【问题标题】:Python SVN Bindings on Windows Server 2008 x64Windows Server 2008 x64 上的 Python SVN 绑定
【发布时间】:2011-02-15 19:45:19
【问题描述】:

我的目标是使用 subversion\tools 中的 python 脚本,在这种情况下特别是 validate-extensions.py。我正在运行基于 Subversion 1.6.15 构建的 VisualSVN Server 2.15,并且目前在机器上设置了 32 位 Python 2.7.1。

当我设置钩子时,我得到一个错误,即找不到 svn 模块。我安装了我能找到的最新的 libsvn 绑定(http://trac.edgewall.org/attachment/wiki/TracSubversion/svn-win32-1.6.15_py_2.7.zip 来自http://trac.edgewall.org/wiki/TracSubversion),但我仍然无法加载 svn 模块。如果我从命令行运行“from svn import repos”,我会得到:

文件 "C:\Python27\lib\site-packages\libsvn\core.py", 第 21 行,在 swig_import_helper _mod = imp.load_module('_core', fp, pathname, description) ImportError: DLL 加载失败:指定的 找不到程序。

我错过了什么吗?我也尝试了 Python27 64 位版本,但预编译的 svn 绑定似乎不可用,我不希望自己完成构建它们所需的一切。

提前感谢您的帮助。

【问题讨论】:

    标签: python svn windows-server-2008 visualsvn-server


    【解决方案1】:

    我在 Subversion 邮件列表中找到了答案。问题是 Trac 提供的 Python 2.7 SVN 绑定是使用旧版本的 Apache dll 构建的,即 libapr-1.dll,它们引用了一个名为“_apr_time_ansi_put@8”的函数。在更高版本的 Apache 中,包括 VisualSVN 2.1.5,libapr-1.dll 更新,函数已重命名为 '_apr_time_ansi_put@12'。

    为了解决这个问题,我从http://subversion.tigris.org/files/documents/15/47914/svn-win32-1.6.6.zip 下载了旧的 Apache 绑定,将 VisualSVN\bin\libapr-1.dll 重命名为 libapr-1.dll.bak,将旧的 libapr-1.dll 复制到 VisualSVN\ bin 文件夹并重新启动服务。没有更多问题,python 'from svn import core' 工作正常,并且 validate-extensions.py 挂钩运行正常。

    【讨论】:

      猜你喜欢
      • 2012-10-15
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      相关资源
      最近更新 更多