Python
の仮想環境を整理した。
基本的にはpipenv
を利用するが、昔使ってたpyenv
やpyenv-virtualenv
が存在して、ごちゃごちゃしていた。
一度全てを削除して、再インストールを行い、リリース済みのウェブアプリのpython
のバージョンを上げてみた。
結果としては、今の所問題は発生していない。
バックアップを取ってから行うと安心。
アンインストール作業
pipenv
以外のツールのアンインストールはこちらを参考にした。
pyenvをちゃんと消してから入れ直す - Qiita
上記の参考に従い、
$ which python #=> /Users/xxx/.pyenv/shims/python みたいなパスが出ると思います
$ rm -rf /Users/xxx/.pyenv # 上の操作で出てきたパスの.pyenvまでのパスを入力します
$ brew uninstall pyenv-virtualenv # virtualenvを使っている場合はこれを先にする
$ brew uninstall pyenv
$ brew list # pyenv, virtualenvが消えていることを確認する
ここまで行った後、pipenv
をアンインストールした。
$ brew uninstall pipenv
仮想環境は全て消えるので注意。
再インストール作業
pipenv
では、pyenv-virtualenv
は不要なので、インストールはしない。
pipenv
のバージョン指定については、Can't switch python version on Pipenv - Stack Overflowを参考にした。
$ brew install pyenv
$ brew install pipenv
# pythonの新しめなバージョンを用意
$ pyenv install 3.7.4
既存アプリの書き換え作業
# pipfileのpythonのバージョンを上記でインストールした3.7.4に書き換える。
#`pipenv run`はこの段階では動かない。以下のような表示が出る
# $ pipenv install
# Warning: Your Pipfile requires python_version 3.7.4, but you are using None (/Users/username/.venv/bin/python).
# $ pipenv --rm and rebuilding the virtual environment may resolve the issue.
# $ pipenv check will surely fail.
# Pipfile.lock (b461a3) out of date, updating to (674c62)…
# Locking [dev-packages] dependencies…
# ✘ Locking Failed!
# pipenvに3.7.4を使うように指定する
$ pipenv --python=3.7.4
# Virtualenv already exists!
# Removing existing virtualenv…
# Creating a virtualenv for this project…
# Pipfile: /app_path/Pipfile
# Using /Users/username/.pyenv/versions/3.7.4/bin/python3 (3.7.4) to create virtualenv…
# ⠧ Creating virtual environment...Using base prefix '/Users/username/.pyenv/versions/3.7.4'
# New python executable in /app_path/.venv/bin/python3
# Also creating executable in /app_path/.venv/bin/python
# Installing setuptools, pip, wheel...
# done.
# Running virtualenv with interpreter /Users/username/.pyenv/versions/3.7.4/bin/python3
#
# ✔ Successfully created virtual environment!
# Virtualenv location: /app_path/.venv
# 最後に依存パッケージをインストールする
$ pipenv install
# 確認
$ pipenv run python manage.py --help
新しく仮装環境を作るときも、
$ pipenv install --python=3.7.4
でOK。バージョンを変えたいときは、pyenv
でインストールして、Pipfile
のPython
バージョンを書き換えたうえで、上の3.7.4
を置き換えて実行すればいいだろう。