安装JCC

获取JCC的源代码

JCC的源代码包含在PyLucene中源代码已经存在,JCC可以在联合通信委员会子目录。

要仅从SVN获取JCC源代码,请使用:

svn公司https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc联合通信委员会

建筑JCC

JCC是用Python和C++编写的Pythone扩展。它需要Java Runtime环境,因为它使用Java的反射API来完成它的工作通过构建和安装distutils(分布实用程序)设置工具

  • 在MacOS和Windows上,设置.py将尝试在您的系统上查找JDK,并通过显示的值报告发现的内容爪哇岛JAVA框架工程能够推导。如果找到的JDK安装不是您的希望使用,或者如果您不在MacOS或Windows上,则可以编辑设置.py并检查包括CFLAGS公司调试_标志LFLAGS公司JAVAC公司、和爪哇岛dict对于您的系统或集合是正确的全部的环境变量JCC_JDK公司JCC_包括JCC_CFLAGS公司JCC_DEBUG_标记JCC_LFLAGS公司JCC_JAVAC公司JCC_JAVADOC公司,使用os.pathsep作为值分隔符以覆盖它们。此处配置的值将编译到JCC的配置.py文件,并将由JCC在调用时使用设置工具编译用于生成代码的扩展。

  • 在命令行中,输入:

python setup.py版本
sudo python setup.py安装

要求

JCC需要提供Java开发工具包。它使用Java Native Invocation(JNI)接口,并期望<jni.h>以及在构建和运行时提供的Java库。

JCC需要C++编译器。建议为您的平台使用最新的C++编译器,它应该可以正常工作。

共享模式:支持--共享的标志

JCC包含一个小型运行时,用于跟踪Java VM和Java对象因为在给定的进程中只能嵌入一个Java VM一次,当超过一个JCC构建的Python扩展将被导入到给定的Pytython进程中。

共享模式取决于设置工具'构建普通共享库的功能(与Python扩展的共享库相反)。

当前支持共享模式设置工具0.6c7和以上MacOS和Windows上的框。在Linux上设置工具需要应用第一。此修补程序包含在jcc2/补丁目录,修补程序43。此修补程序已提交给设置工具项目几年前通过“第43期”,最初追踪到的是早已不复存在的bugs.python.org/setuptools错误跟踪器。设置.py将尝试应用通过monkeypatching为您修补程序。

这个已禁用共享模式在Linux上构建JCC时报告的错误包含有关如何修补设置工具安装具有修补程序43在您的系统上。

在Java VM中嵌入Python作为JCC的运行时时,也需要共享模式JVM使用共享库加载JCC并通过JNI公司。

当共享模式未启用、不受支持或distutils(分布实用程序)改为使用属于设置工具,则使用静态模式。JCC运行时代码是静态的链接到每个JCC构建的Python扩展,并且只能有一个这样的扩展每次在给定的Python进程中使用。

随着setuptools扩展其共享库构建功能,预计]未来应该支持更多的操作系统使用共享模式。

通过使用无共享(_S)环境'变量集。

这里需要考虑两个默认值:

  • JCC是否使用共享模式支持构建?

    • 默认情况下,在MacOS、Linux或Windows上,使用现代的版本设置工具

    • 在其他操作系统上,默认情况下,共享模式支持处于关闭状态-不是支持-因为共享模式取决于设置工具的能力建立一个常规的共享库,这仍然是一个实验特性。

  • JCC构建的Python扩展是用共享模式构建的吗?
    默认情况下,否,共享模式仅使用--共享命令行参数。

MacOS注释

在MacOS上,Java是由Apple的安装程序作为框架安装的设置.py对于包括LFLAGS公司对于达尔文应该是正确的并且准备好了在以下情况下使用设置.py能够推导出爪哇岛JAVA框架工程

然而,如果您打算在MacOS上使用Java VM中的“系统”Python--Java中嵌入的Python——您需要添加标志“-framework”、“Python”LFLAGS公司值。

Linux注释

JCC已经在各种Linux发行版(32位和64位)上构建和测试过。获得正确的java配置很重要,并且对每次分发。
例如:

  • 在Debian 11上,以下命令安装Temurin Java 17、Python 3.9、gcc、g++和make

安装Temurin Java(Adoptium)

苏多-s
apt安装wget-apt-transport-https-gnupg
wget-O-https://packages.adoptium.net/artifactory/api/gpg-key/public| apt-key添加-
echo“debhttps://packages.adoptium.net/artifactory/deb$(awk-F='/^VERSION_CODENAME/{print$2}'/etc/os-release)main“|tee/etc/apt/sources.list.d/appidium.list
apt更新
apt安装temurin-17-jdk

安装gcc、g++和make

sudo apt安装gcc-x86-64-linux-gnu g++-x86-64-linux-knu make

安装支持开发、虚拟环境和setuptools的Python 3.9

sudo apt安装python3.9-dev python3-venv python3-安装工具

JCC的setup.py中的Linux示例标志应该接近正确。请参阅前面关于共享模式用于Linux支持。

带有Sun Studio C++12的Solaris 11的说明

JCC已经在Solaris 11上使用Sun Studio C++12、Java 1.6和Python 2.4。

因为JCC是用C++编写的,所以Pythondistutils(分布实用程序)必须轻轻推到调用正确的编译器。Sun Studio的C编译器称为复写的副本而它的C++编译器被调用科科斯群岛。要构建JCC,请使用以下shell命令确保使用C++编译器:

$CC=CC python setup.py版本

Solaris当前未实现共享模式,设置工具需要首先介绍了如何在Solaris上构建普通共享库。

带有GCC 4.5的Solaris 11.1的说明

JCC已经在Solaris 11.1上用gcc 4.5、Java 1.7和Python构建和测试2.6. 你确定吗?我们已经安装了以下软件包:gcc-4.5、jre-1.7、,jdk-1.7、python-2.6、ant、gnu-make和subversion。

丢失的软件包可以通过安装pkg安装

  • 编辑setup.py并进行以下更改:在JDK={?}中更改条目对于sunos5:“sunos5”:“/usr/jdk/instances/jdk1.7.0”,CFLAGS={?}内部更改sunos5的条目:“sunos5”:[“-fno-strict-aliasing”,“-Wno-write-strings”],
  • python setup.py版本
  • su python setup.py安装

Windows注释

目前,JCC已经在Win2k和WinXP上构建和测试,具有多种Python和Java版本。

  • 将Python目录添加到路径建议使用。
  • 将包含必要DLL的Java目录添加到路径是必须的。
  • 添加包含以下内容的目录编译工具路径是共享所必需的模式(默认情况下,如果设置工具>=0.6c7发现已安装)。

Python 2.3注释

要将JCC与Python 2.3结合使用,需要setuptools

  • 下载设置工具
  • 编辑下载的设置工具egg文件使用python2.3而不是python2.4。
  • 在命令行中,运行:
    $sudo-sh设置工具-0.6c7-py2.4.egg