python - JVM 在 Django 中使用第二种 post 方法崩溃
问题描述
我正在尝试使用 Django 为我的 nlp 项目构建 API。我有 JAR 文件并在 Python 中使用 Jpype 与 JVM 一起运行它。它在第一个 POST 中运行良好,但在第二个 post 方法中崩溃,没有任何例外。
我认为它的原因是 JVM 并尝试了以下代码但没有奏效:
if not jp.isJVMStarted():
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
else:
print('JVM shutting down...')
jp.shutdownJVM()
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
我的所有代码:
def getMorfoloji(sentence):
JAR_PATH = r'bin\zemberek-full.jar'
if not jp.isJVMStarted():
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
else:
print('JVM shutting down...')
jp.shutdownJVM()
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
morphology = TurkishMorphology.createWithDefaults()
analysis = morphology.analyzeSentence(sentence)
results = morphology.disambiguate(sentence, analysis).bestAnalysis()
analysis_result = ''
for i in results:
analysis_result += str(i)
analysis_result += ' -- '
print(analysis_result)
jp.shutdownJVM()
return analysis_result
我怎样才能继续运行 JVM 而不让它停止?
解决方案
推荐阅读
- typescript - 是否可以在 TypeScript 中递归地推断泛型类型?
- python - 如何在python中正确预白时间序列
- python - 在 pyinstaller 中使用 base_library.zip 文件
- android - 如何从我的资产文件夹中访问 .docx 文件?
- r - 在 R 中使用绑定 tf_df
- python-3.x - 子类的父类中的参数使用什么类型提示?
- javascript - 直接评估 JavaScript AST
- java - 如果我只使用一次,我应该散列用户输入的密码吗?
- javascript - JavaScript 新手,需要将输入返回给函数的调用者。我做得对吗?
- javascript - 使用 react、redux、firestore 提交表单 - 未在 firestore 中创建集合