2
0

More than 3 years have passed since last update.

Python3の環境構築

Last updated at Posted at 2021-08-09

はじめに

初学者が書いていますので、誤っている箇所などあればご指摘願います。

前提

・macOS Catalina
pyenvpyenv-virtualenvを使用して環境構築する
zsh使用

参考記事

pyenv と pyenv-virtualenv で環境構築
pyenvとpyenv-virtualenvの自分流使い方
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
pyenv-virtualenvを使って都合のいいように Pythonパッケージ環境を行き来する話

pyenv

pyenvとは

Pythonのバージョンを複数インストールすることができ、バージョンを切り替えて使えるようになります。

pyenvのインストール

ホーム画面で下記コマンドを実行します。

% git clone https://github.com/pyenv/pyenv.git ~/.pyenv

git cloneではなくbrew installする方法もありますが、その場合は下記の.zshrcに記載する内容が異なります。詳しくはpyenvのgithubをご覧下さい。

.zshrcというファイルを編集するため、コマンドでファイルを開きます。
(zshではなくbashを使用されている方は編集ファイルが異なります。)

※公式のgithubだと.zshrcではなく.zprofileを編集していますので、.zprofileの方がいいかもしれません。

% vi .zshrc

ファイルに下記をそのままコピペします。

.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

↑HOMEとか編集する必要はありません。

シェルへ再ログインします。

% exec $SHELL

下記コマンドを実行すると、インストールできるversionがたくさん出てきます。
今回は3.9.6を使用します。

% pyenv install --list
    ~省略~
  3.9.1
  3.9.2
  3.9.3
  3.9.4
  3.9.5
  3.9.6
  3.10.0b4
  3.10-dev
  3.11-dev
  activepython-2.7.14
  activepython-3.5.4
  activepython-3.6.0
  anaconda-1.4.0
    ~省略~

下記コマンドでインストールします。

% pyenv install 3.9.6
% pyenv versions
* system (set by /Users/YOUR_NAME/.pyenv/version)
  3.9.6

3.9.6のインストールができたので、pyenv globalコマンドでsystemから3.9.6へ切り替えます。
※特定ディレクトリ以下のバージョンを変えたい場合は、globalではなくlocalコマンドを使います。(競合した場合、globalよりlocalが優先されます。)

% pyenv global 3.9.6

もう一回確認します。

% pyenv versions
  system
* 3.9.6 (set by /Users/YOUR_NAME/.pyenv/version)

切り替えができてます!

% python --version

上記コマンドでも確認します。

Python 3.9.6

問題なさそうです!
もし、デフォルトで入ってるバージョン(2.X.X)が表示されてしまった場合は、pyenvの環境がうまくいかなかったか、シェルの読み込みに失敗している可能性があります。

pyenv-virtualenv

pyenv-virtualenvとは

pyenvのプラグインで、pyenv上でvirtualenvを使えます。
Pythonのバージョンが同じでも違う環境を作成することができます。

virtualenvとは違います。
virtualenvの場合、activateしないと環境が切り替わりません。

pyenv-virtualenvのインストール

% git clone https://github.com/pyenv/pyenv-virtualenv.git ~/plugins/pyenv-virtualenv

git cloneではなくbrew installする方法もあります。

.zshrcに下記を記載します。

% vi .zshrc
.zshrc
eval "$(pyenv virtualenv-init -)"
% exec $SHELL

新しいPython環境の作成

pyenv virtualenv <VERSION> <NAME>とコマンドを打つことで、NAMEという新しい環境を作成できます。
今回はversion3.9.6のみインストールしているので、3.9.6の新しい環境をsampleという名前で作ります。

% pyenv virtualenv 3.9.6 sample

上記コマンドで、
3.9.6/envs/samplesampleの二つの環境?ができますが、pyenv-virtualenvのgithubを見ると、sampleの方を使うようですね。

新しい環境(sample)で作業をしていきたいので、下記コマンドを実行します。

% pyenv local sample
% pyenv versions
  system
  3.9.6
  3.9.6/envs/sample
* sample (set by /Users/YOUR_NAME/.python-version)

pip

切り替えが完了したので、必要なライブラリ等をpipコマンドでインストールしていきましょう!

さっそくDjangoをインストールしてみます。

% pip install django

インストールができました!
ちなみに、pip listでインストールしたものを確認できます。

pyenv global X.X.Xをしても何も変わらない時

上記作業が終わって、pyenv global X.X.Xをしたのですが、実行されませんでした。
過去に同じディレクトリ内でPythonの環境を設定してしまうと.python-versionというファイルが出来てしまうようです。

% rm ~/.python-version

上記コマンドを実行してファイルを削除することで、pyenv global X.X.Xができました!

最後に

この記事をまとめ始めてから、pyenv-virtualenvvirtualenvは違うものだということが分かりました。
アウトプット大事ですね。

また今後の課題として、venvpipenvが何なのかを理解できるようになりたいなと思っています。今は正直よく分かってないです。
Python3.3以降はvenvが標準化されていて、virtualenvは使う必要がなくなったというのは理解しました。
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。

2021/8/11
@Msksgm さんからコメントをいただき、大幅に修正させていただきました!
コメントありがとうございました!

2
0
5

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
2
0