MeCabを導入した時にエンコードエラーが出て苦戦した時の話

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をもとに戻した。

さてはて…。今日はここまで

広告

投稿者: daigoro021

休日プログラマです

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。