1. 問題
Windows上のpipでFastTextをインストールしようとするとerror: legacy-install-failure
というエラーが発生する。
※エラー文は長いのでこのあと示す
1.1 補足: colabではインストールできる
なおgoogle colabで試したところ普通にインストールできた。
colabでの実行結果。ここを押して展開
!pip install fasttext
↓
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting fasttext Downloading fasttext-0.9.2.tar.gz (68 kB) |████████████████████████████████| 68 kB 3.0 MB/s Collecting pybind11>=2.2 Using cached pybind11-2.10.1-py3-none-any.whl (216 kB) Requirement already satisfied: setuptools>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from fasttext) (57.4.0) Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from fasttext) (1.21.6) Building wheels for collected packages: fasttext Building wheel for fasttext (setup.py) ... done Created wheel for fasttext: filename=fasttext-0.9.2-cp37-cp37m-linux_x86_64.whl size=3158283 sha256=38f688c24fffd27eb8f933767634d3642c2e9809dd66d455ad824265e10103ac Stored in directory: /root/.cache/pip/wheels/4e/ca/bf/b020d2be95f7641801a6597a29c8f4f19e38f9c02a345bab9b Successfully built fasttext Installing collected packages: pybind11, fasttext Successfully installed fasttext-0.9.2 pybind11-2.10.1
2. 環境
- Windows 11 Pro
- バージョン: 22H2
- OSビルド: 22621.819
- Python 3.10.5
- pip 22.3.1
- jupyterやpandas, sklearn, gensimなどインストール済
3. エラー文
PS C:\Users\ユーザ名> pip install fasttext Collecting fasttext Using cached fasttext-0.9.2.tar.gz (68 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: pybind11>=2.2 in c:\users\<ユーザ名>\appdata\local\programs\python\python310\lib\site-packages (from fasttext) (2.10.1) Requirement already satisfied: setuptools>=0.7.0 in c:\users\<ユーザ名>\appdata\local\programs\python\python310\lib\site-packages (from fasttext) (58.1.0) Requirement already satisfied: numpy in c:\users\<ユーザ名>\appdata\local\programs\python\python310\lib\site-packages (from fasttext) (1.23.4) Building wheels for collected packages: fasttext Building wheel for fasttext (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [70 lines of output] C:\Users\<ユーザ名>\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\dist.py:717: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead (中略) error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for fasttext Running setup.py clean for fasttext Failed to build fasttext Installing collected packages: fasttext Running setup.py install for fasttext ... error error: subprocess-exited-with-error × Running setup.py install for fasttext did not run successfully. │ exit code: 1 ╰─> [70 lines of output] (中略) [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> fasttext note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.
※ちなみに中略部分では、C/C++コードのコンパイルエラー(識別子ssize_t
が見つかりません、など)が何行も出力されていた。
4. 原因
おそらくPythonのバージョンが高すぎることが原因。
以下では同じようなエラーが出た報告がなされているが、バージョンを下げることで対処できている。
5. 本当にバージョンのせいなのか調べる
現在使用している環境のPythonをバージョンダウンするのは少し面倒なので、逆にGoogle ColabのPythonバージョン(3.7だったはず)を上げてみる。
バージョンアップ方法は以下ページに載っている。Minicondaというものを入れることによりバージョンを上げているようだ。
Minicondaで用意されているPythonはバージョン3.10が最新のようなので (3.11入れようとしたらエラーが出た)、それをColabにインストールした。バージョンはPython 3.10.4
であった。
その上でpip install fasttext
を行うと、やはりエラーが出てインストールできないことが確認できた。
!pip install fasttext
↓
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting fasttext Downloading fasttext-0.9.2.tar.gz (68 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 68.8/68.8 kB 3.3 MB/s eta 0:00:00 Preparing metadata (setup.py) ... done Collecting pybind11>=2.2 Using cached pybind11-2.10.1-py3-none-any.whl (216 kB) Requirement already satisfied: setuptools>=0.7.0 in /usr/local/lib/python3.10/site-packages (from fasttext) (65.5.0) Collecting numpy Downloading numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.1/17.1 MB 40.1 MB/s eta 0:00:00 Building wheels for collected packages: fasttext error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. Building wheel for fasttext (setup.py) ... error ERROR: Failed building wheel for fasttext Running setup.py clean for fasttext Failed to build fasttext Installing collected packages: pybind11, numpy, fasttext Running setup.py install for fasttext ... done DEPRECATION: fasttext was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. A possible replacement is to fix the wheel build issue reported above. Discussion can be found at https://github.com/pypa/pip/issues/8368 Successfully installed fasttext-0.9.2 numpy-1.23.5 pybind11-2.10.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv