ビジネス

WSL2(Ubuntu20.04)+pyenv+PoetryでPython環境構築してみた(前編)

こんにちは。分析官のA.K.です。今回はWSL2(Ubuntu)上にpyenvとPoetryを使ってVScode上でPythonコードを実行するための環境構築についてやり方を紹介していきたいと思います。同じ様な記事はたくさんありますが、非エンジニアの自分が躓いたポイントなども交えながら紹介できればと思います。

目次

  • 構築する環境の紹介
  • pyenvの構築
  • Poetryの構築(次回)
  • VScodeで仮想環境を開く方法(次回)

構築する環境の紹介

今回作成する環境は以下の通りです。

  • WSL2(Ubuntu20.04)
  • pyenv = 3.11.7
  • poetry = 1.7.1
  • VScode

WLS2上にUbuntuを導入する方法はメモを忘れてしまったので、構築する際に参考にさせて頂いた記事のみの紹介となります。以下の記事で非常に分かりやすくまとめられていました。

(※Ubuntuのバージョンは2024年1月現在では、22.04 LTSが最新になりますので、インストールする際にはそちらがおすすめです。)

構築に失敗して環境がよく分からなくなってしまった方にはこちらの記事がおすすめです。

pyenvの構築

WSL2をインストールしてUbuntu環境ができたら、そこにpyenvを構築していきます。本記事で記載するコードは基本的に、Ubuntuのコマンドプロンプトで実行するようにして下さい。

Ubuntuのコマンドプロンプトの開き方

  1. Windowsのスタートメニューを開く
  2. 「Ubuntu」と検索して、「Ubuntu 20.04 on Windows」を開く

巷の記事ではanyenvをインストールして、anyenvを介してpyenvを導入するみたいなやり方もあるみたいですが、今回は単独でpyenvのみをインストールしていきたいと思います。

pyenvのインストール方法

  1. Ubuntuのアップデート(すでに最新版になっている場合はスキップ)
    sudo apt update && sudo apt upgrade​
  2. pyenvのインストール
    curl https://pyenv.run | bash​
  3. 環境変数の設定
    echo '' >> ~/.bashrc
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init --path)"' >> ~/.bashrc​
  4. Ubuntuを再起動するために、コマンドプロンプトを開きなおす
  5. pyenvがインストールされていることを確認(以下コマンドを実行して、バージョンが表示されたら完了)
    pyenv --version​

これでpyenvの導入は完了です。次に導入したpyenvにPythonをインストールしていくのですが、ここでたくさんつまづきました。どうやらWSL2(Ubuntu20.04)にはPythonをインストールする際に必要なパッケージが標準で入っていない(?)ようでいくつか個別にインストールが必要でした。

pyenvにPythonをインストール

  • 以下コマンドでPythonをインストールすることができます。(Pythonバージョンは適宜変更)
    pyenv install 3.11.7​

上記コマンド実行時に出たエラーの解消方法

各エラーログに対して、下のコマンドを実行することで解決できました。

①エラーログ:configure: error: no acceptable C compiler found in $PATH

# gccをインストールする
sudo apt-get install build-essential

②エラーログ:zipimport.ZipImportError: can’t decompress data; zlib not available

# Zlibをインストールする
sudo apt-get install zlib1g-dev

③エラーログ:The Python ssl extension was not compiled. Missing the OpenSSL lib?

# OpenSSLを再構築する
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

 

pyenvでPython環境を構築する際のよくある問題は以下のGithubにまとめられていました。

最後に……

これでやっとPythonの環境だけはできました。コードベースでいうと数個のコードしか実行していませんが、非エンジニアにとっては何がどう作用してどのように環境が作られているのかすぐに分からないため、非常に時間がかかりました。

本記事が非エンジニアの方に少しでもお役に立てれば幸いです。

あとは実際にPythonを使うための準備として、Poetryの導入とVScodeで実際に扱っていく方法を次の記事で紹介していきたいと思います。

次回の記事

WSL2(Ubuntu20.04)+pyenv+PoetryでPython環境構築してみた(後編)こんにちは。分析官のA.K.です。今回は前回に引き続き、WSL2(Ubuntu)上にpyenvとPoetryを使ってVScode上でPy...
A.K.
新米分析官。趣味は、釣り・サウナ。