Python3でmecabを導入し、ソースコードを実行したときに下記のようなエラーに遭遇
Traceback (most recent call last):
File "****.py", line 4, inimport MeCab
File "/home/anaconda3/envs/py3.6/lib/python3.6/site-packages/MeCab/__init__.py", line 75
SyntaxError: Non-ASCII character '\xe3' in file /home/catechecker/anaconda3/envs/py3.6/lib/python3.6/site-packages/MeCab/init.py on line 76, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
どうやらmecabのinit.pyが「\xe3はアスキー文字じゃねぇよ!出直してきやがれ!」と言っているのかもしれない。UTF8を扱っているからそりゃアスキー文字じゃぁないわなw
ここで一つ疑問。
Python3系からUTF8は標準サポートしているので、
#-*- encoding: utf-8-*-などのおまじないは2系とちがって不要である。
もしかしてMeCab-python3はpython2系で記述されたコードなのだろうか??
というわけでinit.pyの中身を見てみることにした。
#coding: utf-8の記載はない。試しに#coding: utf-8を__init__.pyに書き込んで作成中のプログラムを実行してみた。
すると、
Traceback (most recent call last): File "****.py",
line 4, in import MeCab File "/home/anaconda3/envs/
py3.6/lib/python3.6/site-packages/MeCab/init.py", line
11, in from . import _MeCab ImportError: cannot import
name _MeCab
といったエラーを吐くようになった。
どうやら__init__.pyのエンコードの設定をutf-8に設定することで_MeCabをインポートできいと騒いでいるらしい。
すぐに__init__.pyをもとに戻した。
さてはて…。今日はここまで