From f5ab80e702fdc2a51cb0f87a53c8ae3085dcd0b2 Mon Sep 17 00:00:00 2001 From: Hideaki Takahashi Date: Sat, 19 Apr 2025 06:28:44 -0400 Subject: [PATCH 1/5] explicitly set the mecabrc path --- .github/workflows/package.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 68f86a8..8ebdbbd 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -47,3 +47,7 @@ jobs: - name: Test with tox run: | tox + env: + # pre-built wheel from https://pypi.org/project/mecab/ defaults to /usr/local/etc/mecabrc + # but mecab from ubuntu uses /etc/mecabrc + MECABRC: /etc/mecabrc From 419693829af3c96c5cc0961de6f38226eb64a9d2 Mon Sep 17 00:00:00 2001 From: Hideaki Takahashi Date: Sat, 19 Apr 2025 06:37:38 -0400 Subject: [PATCH 2/5] try to put env to the top level --- .github/workflows/package.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 8ebdbbd..a682486 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -6,6 +6,12 @@ on: [push] # pull_request: # branches: [ master ] +env: + # pre-built wheel from https://pypi.org/project/mecab/ defaults to /usr/local/etc/mecabrc + # but mecab from ubuntu uses /etc/mecabrc + # mecab is only used for testing on Linux, should be harmless to define globally + MECABRC: /etc/mecabrc + jobs: build: runs-on: ${{ matrix.os }} @@ -47,7 +53,3 @@ jobs: - name: Test with tox run: | tox - env: - # pre-built wheel from https://pypi.org/project/mecab/ defaults to /usr/local/etc/mecabrc - # but mecab from ubuntu uses /etc/mecabrc - MECABRC: /etc/mecabrc From ddc9a44b16c873fa3a6fb6bfb986955d9dedd075 Mon Sep 17 00:00:00 2001 From: Hideaki Takahashi Date: Sat, 19 Apr 2025 06:40:57 -0400 Subject: [PATCH 3/5] test --- .github/workflows/package.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index a682486..f5419e8 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -6,11 +6,6 @@ on: [push] # pull_request: # branches: [ master ] -env: - # pre-built wheel from https://pypi.org/project/mecab/ defaults to /usr/local/etc/mecabrc - # but mecab from ubuntu uses /etc/mecabrc - # mecab is only used for testing on Linux, should be harmless to define globally - MECABRC: /etc/mecabrc jobs: build: @@ -52,4 +47,4 @@ jobs: sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8 - name: Test with tox run: | - tox + MECABRC=/etc/mecabrc tox From 0d822d410d76d30d45606aed172d7dfd3334f665 Mon Sep 17 00:00:00 2001 From: Hideaki Takahashi Date: Sat, 19 Apr 2025 06:48:31 -0400 Subject: [PATCH 4/5] test again --- .github/workflows/package.yml | 2 +- tests/test_mecab.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index f5419e8..a62e38c 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -47,4 +47,4 @@ jobs: sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8 - name: Test with tox run: | - MECABRC=/etc/mecabrc tox + tox diff --git a/tests/test_mecab.py b/tests/test_mecab.py index e6f460e..cdf3d90 100644 --- a/tests/test_mecab.py +++ b/tests/test_mecab.py @@ -1,6 +1,7 @@ # coding: utf-8 from __future__ import print_function +import os import sys import pytest @@ -13,7 +14,7 @@ class MeCabTokenizer(fts.Tokenizer): def __init__(self): - self.tagger = mecab.Tagger() + self.tagger = mecab.Tagger(os.getenv("MECABRC", "/etc/mecabrc")) self.tagger.parseToNode("") if sys.version_info.major == 2: From 91faad1cab0e7abb1308a1ae34731999943299b0 Mon Sep 17 00:00:00 2001 From: Hideaki Takahashi Date: Sat, 19 Apr 2025 07:54:29 -0400 Subject: [PATCH 5/5] another workaround.. --- tests/test_mecab.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test_mecab.py b/tests/test_mecab.py index cdf3d90..326232b 100644 --- a/tests/test_mecab.py +++ b/tests/test_mecab.py @@ -14,8 +14,11 @@ class MeCabTokenizer(fts.Tokenizer): def __init__(self): - self.tagger = mecab.Tagger(os.getenv("MECABRC", "/etc/mecabrc")) - self.tagger.parseToNode("") + try: + self.tagger = mecab.Tagger() + except: + self.tagger = mecab.Tagger("".join(["-r", os.getenv("MECABRC", "/etc/mecabrc")])) + self.tagger.parseToNode("") if sys.version_info.major == 2: