pyjnius不在虚拟环境中工作

Posted

技术标签:

【中文标题】pyjnius不在虚拟环境中工作【英文标题】:pyjnius not working in virtual environment 【发布时间】:2016-07-07 17:27:19 【问题描述】:

我正在 django 中使用 pyjnius。我无法将它作为模块导入,所以我像这样使用它

os.system("python  home/pyjnius/jnius/run_me.py " + path)

正常工作,但在虚拟环境中会报错

Traceback (most recent call last):
File "run_me.py", line 11, in <module>
from jnius import autoclass
ImportError: No module named jnius

this 是我正在关注的代码

请任何人在这里指出一些方向,例如如何在虚拟环境中使用 pyjnius 或我在哪里犯错误。

在 run_me.py 中这是 code

import os
os.environ['JAVA_HOME'] = '/usr/lib/jvm/java-7-openjdk-amd64/'
os.environ['CLASSPATH'] = "/path/to/tika-app.jar"

from jnius import autoclass

## Import the Java classes we are going to need
Tika = autoclass('org.apache.tika.Tika')
Metadata = autoclass('org.apache.tika.metadata.Metadata')
FileInputStream = autoclass('java.io.FileInputStream')

tika = Tika()
meta = Metadata()
text = tika.parseToString(FileInputStream(filename), meta)

谢谢

【问题讨论】:

run_me.py 文件里面有什么?为什么不能将 pyjnius 作为模块导入? 我已对 run_me.py 进行了上述更改 【参考方案1】:

我也遇到了一些麻烦。

以下内容对我有用:

创建一个新的virtualenv,以防万一,并激活它。

# install pyjnius
pip install cython
cd [virtualenv]/src/
git clone https://github.com/kivy/pyjnius.git
cd pyjnius
python setup.py install

# get the tika-app (don't know if this is the latest version)
wget http://apache.proserve.nl/tika/tika-app-1.5.jar
mv tika-app-1.5.jar /usr/local/lib/

# put the following in .bashrc
export CLASSPATH=$CLASSPATH:/usr/local/lib/tika-app-1.5.jar

【讨论】:

谢谢你的工作,我正在使用 os.system(..) 你能告诉我一些从 /virtualenv/src/ 导入 jnius 作为 python 模块的方法 您要导入run_me 还是jnius jnius 如果我可以导入它,我会在 django 的视图中编写 run_me.py 代码 嗯,我在管理命令中使用它。当CLASSPATH 上没有 tika 时会出现此问题。也许os.environ['CLASSPATH'] 应该在请求链的早期发生。

以上是关于pyjnius不在虚拟环境中工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 的虚拟环境中让 pyspark 在 Jupyter Notebook 中工作?

python中的虚拟环境

jquery 不在部署中工作,但在本地 nuxtjs 中工作?

无法在虚拟环境中导入本地模块

Ant无法在Eclipse Kepler中工作(Java虚拟机启动器 - 发生了Java异常)

如何使 readline 在 python 子进程中工作?