LoginSignup
3
3

More than 1 year has passed since last update.

pyenv + venv + VSCodeでPython環境構築

Posted at

環境

  • macOS Monterey
  • Homebrew 3.3.9
  • pyenv 2.2.3
  • VSCode 1.63.2

前提

  • ログインシェルはzsh
  • Homebrewがインストール済
  • VSCodeとPython用の拡張機能(Python)がインストール済み

構築手順

pyenvをインストール

:point_right: https://github.com/pyenv/pyenvのインストール手順を参考にしました。

Homebrewでpyenvをインストール

brew update
brew install pyenv

zshの設定

echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

ここで一旦ターミナルをrestart

依存パッケージをインストール

brew install openssl readline sqlite3 xz zlib

インストールはこれで完了

インストールできるPythonのバージョン一覧

pyenv install --list

バージョンを指定してpythonをインストール

pyenv install 3.10.0

pyenv installすると
configure: error: C compiler cannot create executables
のエラーになりました。
こちらを参考にさせていただき、XcodeとCommand line toolsをアップデートしたら解決しました。
https://charmie11.hatenablog.com/entry/2021/07/20/101528

インストール済みバージョンの確認

pyenv versions

全てのシェルで利用するPythonのバージョンを指定

pyenv global 3.10.0

カレントディレクトリ以下で利用するPythonのバージョンを指定
pyenv local 3.10.0
現在のシェルでのみ利用するPythonのバージョンを指定
pyenv shell 3.10.0

バージョン設定の優先順位は、shell > local > global の順。

現在のバージョンを確認

pyenv version


venvで仮想環境を作成

venvはpython3.3から標準搭載されているそうです。

cd [/path/to/project]  #プロジェクトのディレクトリに移動
pyenv local 3.10.0  #カレントディレクトリで使用するpythonのバージョンを指定
python -m venv [/path/to/new/virtual/environment]  #仮想環境の作成

作成した仮想環境を有効化する必要がありますが、VSCodeを使う場合は、自動で有効化されます。
手動で有効化する場合は、
cd [/path/to/new/virtual/environment]# 仮想環境のディレクトリに移動
source ./bin/activate# 有効化
停止する場合は、
deactivate

VSCodeで開発環境作成

拡張機能「Python」が必要です。
以降は、インストールされている前提の手順です。

プロジェクトのディレクトリ[/path/to/project]をVSCodeで開く
ファイル > フォルダーを開く

ディレクトリ配下にpythonファイルが無い場合は作成。
例えば、test.pyなど。中身は空でも大丈夫みたいです。
pythonファイルを選択すると、自動的に仮想環境がactivateされるようで、VSCodeの画面一番下の青いステータスバーの左側に
Python 3.10.0 64-bit ('[仮想環境]':venv)
のように表示される。

ターミナル > 新しいターミナル
でターミナルを開くと、仮想環境が有効になったプロンプトになっている。

以下で、仮想環境になっていることを確認。

which python
which pip
3
3
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
3
3