以前ご相談させていただいた内容の関連質問です。
表題のように当時一応Webブラウザ上にPython3で呼び出されたMecabの結果を表示することができました。
その際のご助言にもありましたが、Xserverでの運用の限界を感じまして、
VSPをお借りして再構築をしていたのですが、
Python3
1#!/usr/bin/python3 2# -*- coding: utf-8 -*- 3 4import sys 5import io 6sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') 7 8import os 9os.environ['MECAB_PATH'] = '/.../mecab/lib/libmecab.so/libmecab.so.2' 10os.environ['MECAB_CHARSET'] = 'utf8' 11 12import cgi 13# enable debugging 14import cgitb 15cgitb.enable() 16 17from natto import MeCab 18import traceback 19 20text = "今日は台風すごかったね。" 21 22try: 23 mc = MeCab() 24 ma = mc.parse(text) 25 26except: 27 traceback_txt = traceback.format_exc() 28 29print("Content-Type: text/html; charset=utf8\n") 30print(""" 31<!DOCTYPE html> 32<html> 33<head> 34<meta charset="utf8"> 35<title>形態素解析</title> 36</head> 37<body> 38<pre> 39""") 40print(ma) 41print(traceback_txt) 42print(""" 43</pre> 44</body> 45</html> 46""")
のようにしたところ、
Python3
1Traceback (most recent call last): 2 File "/.../mecab_faq_form.py", line 139, in 3 mc = MeCab() 4 File "/.../python3.6/site-packages/natto/mecab.py", line 168, in __init__ 5 raise MeCabError(self._ERROR_NULLPTR.format('Model')) 6natto.api.MeCabError: Could not initialize MeCab Model
解析結果は表示されずに上記のようなエラーメッセージがブラウザ上に表示されてしまいました。
最初はこれまでの質問とかを参照して辞書の割当が上手く行ってないのかと思い、
Python3
1% mecab -D
したところ、きちんと表示されました。
この状況は、これまで上手く動作していたXserverでの環境から移行した結果でして、
基本的にPathの変更以外はプログラム上で変えたところはございません。
OSは両者とも CentOS 7で、移行前が7.1、移行後が7.5
Pythonのバージョンは以降前が3.4、移行後が3.6
Apacheは移行前が2.2、移行後が2.4
MeCabは共に0.996です。
Apacheのエラーログですが、
Python3
1Could not initialize MeCab Model, referer: http://hoge.com/test.py
後はpipやAnacondaで入れたものの依存関係になろうかと思うのですが、
書こうとしましたら文字数制限でだめでした。
このような状況ではありますが、ご助言いただけますと幸甚です。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー