LoginSignup
7
6

WSL2-UbuntuでPython3.11設定時のMissing lzma WARNINGに対応する

Last updated at Posted at 2023-01-15

概要

WSL2 + Ubuntu20.04 + pyenvという環境で、Python 3.11.1を導入しようとしたところ下記のように lzma についてWARNINGが発生しました。

試そうとしているモジュールがlzmaを使うようなので対処メモを記録します。

インストールした際の状態

インストール時の出力メッセージです。

$ pyenv install 3.11.1
Downloading Python-3.11.1.tar.xz...
-> https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz
Installing Python-3.11.1...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/shinsaka/.pyenv/versions/3.11.1/lib/python3.11/lzma.py", line 27, in <module>
    from _lzma import *
ModuleNotFoundError: No module named '_lzma'
WARNING: The Python lzma extension was not compiled. Missing the lzma lib?
Installed Python-3.11.1 to /home/shinsaka/.pyenv/versions/3.11.1

WARNINGメッセージ内容を翻訳するとこんな感じでしょうか。

lzmaライブラリがシステム上にないのでlzmaエクステンションはコンパイルされませんでした。
(それでも) Python3.11.1はインストールしました。

試しにインポートしてみるとエラーとなります。
Python自体はインストールされているが、 lzma モジュールは含まれないので使えない状態のようです。

$ pyenv local 3.11.1
$ python
Python 3.11.1 (main, Jan 15 2023, 14:55:22) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lzma
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shinsaka/.pyenv/versions/3.11.1/lib/python3.11/lzma.py", line 27, in <module>
    from _lzma import *
ModuleNotFoundError: No module named '_lzma'
>>>

対処

まずはpyenvから対象バージョンを削除します。

$ pyenv uninstall 3.11.1
pyenv: remove /home/shinsaka/.pyenv/versions/3.11.1? [y|N] y
pyenv: 3.11.1 uninstalled

つぎにliblzma-dev パッケージをインストールします。

$ sudo apt install liblzma-dev
...snip...
Setting up liblzma-dev:amd64 (5.2.4-1ubuntu1.1) ...

再度 Python3.11.1をインストールします。
WARNINGなしで完了します。

$ pyenv install 3.11.1
Downloading Python-3.11.1.tar.xz...
-> https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz
Installing Python-3.11.1...
Installed Python-3.11.1 to /home/shinsaka/.pyenv/versions/3.11.1

lzmaモジュールをインポートしてみます。エラーは発生しません。

$ python
Python 3.11.1 (main, Jan 15 2023, 15:22:26) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lzma
>>>
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6