polm/fugashi

Unable to install (Windows x64, Python 3.10)

Skimige opened this issue · 2 comments

In general, this should be an issue of not having pre-built wheels for Python 3.10.
mecab.h and libmecab.lib cannot be found, causing building errors.

Eventually I noticed that I have to download mecab-msvc-x64.zip 1 and extract to the very specific location recorded in fugashi_utils.py2, in order to build the wheel and install successfully.
(ofc before this, have Build Tools and Windows SDK installed)

What I don't understand is that I have to use this specific (forked) version of mecab, instead of the installer from Official Website (generally because installed ver have subfolders bin and sdk to store dll, h and lib separately). And the hardcoded path does look strange.

fugashi-1.1.1-cp310-cp310-win_amd64.zip

idk if this should be an issue, sorry for any incovenience

Footnotes

  1. https://github.com/polm/fugashi/blob/9ba7b3013680e359aadfe57c2213c7df040d13ca/.github/workflows/windows.yml#L49

  2. https://github.com/polm/fugashi/blob/9ba7b3013680e359aadfe57c2213c7df040d13ca/fugashi_util.py#L18

polm commented

Thanks for the reminder, you are correct that the issue here is that wheels for 3.10 haven't been built yet. I will work on adding those.

The Windows build options are designed to work with that particular MeCab build and not really intended for end-users installing from source. The zip we use is a user contribution.

As to why we don't use the official upstream distribution - it hasn't been updated in over five years, I understand the source doesn't build on Windows without modification, and the maintainer basically doesn't respond to issues or pull requests. For example, the user who contributed our Windows build made a PR upstream three years ago, but the maintainer hasn't acknowledged it in any form. I myself have PRs going back over a year before that. So that's why we don't use upstream.

Thanks for explaining 😊
Would it be better to have some installation guidance in README? As manual installation (either from source or a specific version tarball) is the last approach, I think.