Pythonパッケージを利用する際に発生したエラーと対応方法について、備忘録として残しておきます。
サマリとしては、
- Pythonバージョンによっては利用できないパッケージが存在すること
- 対応しているPythonバージョンの確認の仕方
を抑えておく必要があります。
wordcloudパッケージを利用時に遭遇したエラーで、wordcloudパッケージは正常にインストールできたのですが、import時にDLL load failed while importing _cextエラーが発生しました。
Windows11環境上のPython 3.12で試していた内容です。
>pip install wordcloud
Collecting wordcloud
Downloading wordcloud-1.9.3-cp312-cp312-win_amd64.whl.metadata (3.5 kB)
:
Installing collected packages: six, pyparsing, pillow, packaging, numpy, kiwisolver, fonttools, cycler, python-dateutil, contourpy, matplotlib, wordcloud
Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 numpy-1.26.4 packaging-23.2 pillow-10.2.0 pyparsing-3.1.1 python-dateutil-2.8.2 six-1.16.0 wordcloud-1.9.3
>python
Python 3.12.2 (tags/v3.12.2:6abddd9, Feb 6 2024, 21:26:36) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wordcloud
:
File "C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\kiwisolver\__init__.py", line 8, in <module>
from ._cext import (
ImportError: DLL load failed while importing _cext: 指定されたモジュールが見つかりません。
インターネット上で調べると、
'_cext' - no such module when importing OrbitalPy
I'm using the OrbitalPy lib to display orbits in Python. However, when I run the program (which is actually listed in th...
がヒットし、msvc-runtimeパッケージが追加で必要であることが分かります。
早速インストールを試みたところ、今度は以下のエラーに遭遇しました。どうやらmsvc-runtimeパッケージが存在しない様子。
>pip install msvc-runtime
ERROR: Could not find a version that satisfies the requirement msvc-runtime (from versions: none)
ERROR: No matching distribution found for msvc-runtime
エラー内容からPythonバージョンも関係してそうだったため、msvc-runtimeパッケージについて、以下のサイトで確認してみました。
msvc-runtime
Install the Microsoft™ Visual C++™ runtime DLLs to the sys.prefix and Scripts directories
結果として、msvc-runtimeパッケージの最新版はcp311となっており、Python 3.11には対応していますが、Python 3.12には対応できていないようでした。このため、Python 3.11に変更して再度インストールしてみます。
>pip install msvc-runtime
Collecting msvc-runtime
Downloading msvc_runtime-14.34.31931-cp311-cp311-win_amd64.whl.metadata (470 bytes)
Downloading msvc_runtime-14.34.31931-cp311-cp311-win_amd64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 523.0 kB/s eta 0:00:00
Installing collected packages: msvc-runtime
Successfully installed msvc-runtime-14.34.31931
>python
Python 3.11.8 (tags/v3.11.8:db85d51, Feb 6 2024, 22:03:32) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import wordcloud
>>> dir(wordcloud)
['ImageColorGenerator', 'STOPWORDS', 'WordCloud', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_version', 'color_from_image', 'get_single_color_func', 'query_integral_image', 'random_color_func', 'tokenization', 'wordcloud']
>>>
今度は問題なくmsvc-runtimeパッケージもインストールされ、wordcloudパッケージも利用できるようになりました。
結論としては、「利用したいパッケージのPythonバージョンを調べてインストールする必要がある」ということですね。
コメント