安装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(分布实用程序)或设置工具。
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)环境'变量集。
这里需要考虑两个默认值:
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