使 saxon-c 在 Python 中可用

Zug*_*Bug 1 python saxon saxon-c

我刚刚读到 Saxon 现在可用于 Python,这非常有趣而且很好,但是任何人都可以编写有关如何使其可用于 Python/Anaconda/WingIDE 或类似软件的教程吗?我习惯于使用 pip 或 conda 进行安装,并指向一个包/轮以集成到我的环境中,但我从未从头开始,因为感觉我在这里做的,还是我错过了什么?

该文档指出:

Linux 和 MacOS 平台上的 Python 扩展可以使用以下命令构建:python3 saxon-setup.py build_ext -if

好吧,我在 Windows 机器上,那又怎样?我试图阅读这个主题,但接收和“.h”文件似乎超出了我的脑海。

我真的很想让它在 Python 上工作,但现在,我被困在 Python 中的 xslt 和 xpath 1.0,并且不得不通过 Java 为 xslt 2+ 努力。

任何帮助将不胜感激!

我将在 StackOverflow 上写另一个问题,但重点是当我安装了 64 位版本的 Anaconda 时如何使用 Cython 进行构建。这似乎是我最初的问题。

Mar*_*nen 5

我已经成功地在几台 Windows 10 机器上为 Python 构建了 saxonc,在这些机器上我已经安装了 Visual Studio 2017 或 2019,支持 Python 3 和 C/C++。

大致步骤如下:

  • 从 Saxonica 安装 Saxon-C HE 1.2.1
  • 对于 Python:更新 pip
  • 使用 pip 安装 Cython: pip install Cython
  • 打开 Python 3.7 的 Powershell(如果您安装在 C:\Program Files 中,则具有管理员权限)
  • cd Saxon 安装目录(例如cd C:\Program Files\Saxonica\SaxonHEC1.2.1
  • cd Saxon.C.API\python-saxon
  • py saxon-setup.py build_ext -if
  • 对于任意 Powershell Windows 需要设置:$Env:PYTHONPATH += ";C:\Program Files\Saxonica\SaxonHEC1.2.1\Saxon.C.API\python-saxon"以确保任何 Python 程序中的“import saxonc”都能找到 saxonc 模块