新しいPCが届き,Anacondaを使わずにPython環境の構築を1からやり直したので,整理も兼ねて投稿します.
対象者
- Microsoft StoreからPythonをインストールしたくない人.(ここ重要)
- Anacondaを使いたくない人.
- Pathを通す作業をなるべくしたくない人.
- pyenvとpipで開発したい人.
事前準備
- chocolateyがインストールされていること.
- chocolateyのパスが通っており,動作を確認済み.
やり方
pyenvのインストール
cinst pyenv-win
でpyenv
をインストールできます.
何か聞かれた時はこれを参照
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint)
という表示があればY
もしくはA
と入力してください.
インストール可能なPythonのバージョンを探す
pyenv install -l
出力例
...
3.9.1rc1-win32
3.9.1rc1
3.9.1-win32
3.9.1
3.9.2rc1-win32
3.9.2rc1
3.9.2-win32
3.9.2
3.9.3-win32
3.9.3
3.9.4-win32
3.9.4
3.9.5-win32
3.9.5
3.9.6-win32
3.9.6
3.10.0a1-win32
3.10.0a1
3.10.0a2-win32
...
調べていないので確証はありませんが
3.9.6-win32
は32bitのWindows用のPythonがインストールされるのではないかと思います.
とりあえず,バージョンの後に何もついていないものを選べば良いと思います.
好きなバージョンをインストール(例として3.9.6をインストール)
pyenv install 3.9.6
成功例
:: [Info] :: completed! 3.9.6
と出ていれば成功です!
おめでとう!!
失敗した時はこちらを参照
rehash
これでもう一度試してください.
インストールできたか確認
pyenv versions
でインストールされているPythonが出力されます.
成功例
* 3.9.6
と出ていれば正常にインストールされています.
ちなみに*
が出ているバージョンが現在,適用されているバージョンです.
実行できるか確認
python -V
# 出力:Python 3.9.6
となっていれば成功です.
Microsoft Storeが立ち上がる
- 環境変数ウィンドウを開く.
- ユーザー環境変数のPathを選択後,編集ボタンをクリック.
-
%USERPROFILE%/.pyenv/pyenv-win/shims
と%USERPROFILE%/.pyenv/pyenv-win/bin
を一番上に持ってくる.
↑の2つの値が無い時はこちらを参照
cinst pyenv-win
の時点でなぜかPathに追加されなかった様なので,Pathを直接編集します.
-
~/.pyenv/pyenv-win
直下にshimsとbinがあることを確認. - ユーザー環境変数のPathを選択後,編集ボタンをクリック.
- 新規ボタンをクリック後,
%USERPROFILE%/.pyenv/pyenv-win/shims
と入力. - もう一度新規ボタンをクリック後,
%USERPROFILE%/.pyenv/pyenv-win/bin
と入力. - どちらも
%USERPROFILE%/AppData/Local/Microsoft/WindowsApps
より上に移動させる.
Pythonのバージョンを切り替える
バージョンの切り替えにはglobal
とlocal
の2種類があります.
global
はシステム全体を通して扱うPythonのバージョンを指定できます.
local
は任意のディレクトリ直下で扱うPythonのバージョンを指定できます.
local
で指定したバージョンはglobal
よりも優先されます.
コマンドは以下の通りです.
pyenv global 3.9.5
# または
pyenv local 3.9.5
コマンド実行後にpython -V
を実行して,指定したバージョンが出力されていれば成功です!
仮想環境を作ろう!そして入ろう!
続いて仮想環境を作ってそこに入ってみましょう!
cd ~/work_space #好きなディレクトリで良い
pyenv local 3.9.6 #好きなバージョン
ls -a
./ ../ .python-version
# .python-versionにバージョンがメモされる.(これを修正してもバージョンは変わらない)
python -m venv .env #.envは隠しフォルダ名なので好きな名前で良い
ls -a
./ ../ .env/ .python-version
# .envがあれば成功!
以上で仮想環境の作成が完了です.
# Git Bashの場合
source .env/Scripts/activate #仮想環境の有効化
# PowerShellの場合
./.env/Scripts/Activate.ps1 #仮想環境の有効化
最後のコマンド実行後
(.env)
と出ていれば仮想環境に入れています!おめでとう!!
仮想環境から出る時は,Git BashもPowerShellも
deactivete
で出れます.
Q&A
Chocolateyって?
Chocolatey
とはCUIでソフトウェアやコマンド類をインストールできるWindows用のパッケージマネージャーです.
簡単に言えば,コマンドでインストールやアンインストールするApp Store
やGooglePlay Store
です.
インストールするにはPowerShellを管理者権限で起動し,ここにアクセス.真ん中あたりにコピペで動かせるコマンドがあるので,それをコピペ実行で入ります.
Chocolateyを略してChocoと表現したりします.
pyenvって?
pyenv
とはPython用のバージョン管理ツールです.これを使うと様々なバージョンを扱うことができ,公式ページから落として環境変数をいじる必要がなくなります.楽過ぎますね〜
Rubyでいうrbenv
,Node.jsならnvm
のことです.
Dockerじゃあかんの?
ただのPython環境で実行するのならそれで良いと思います.楽ですしね.
ただ,CUDAを使いたい場合,現時点(2021/10/13)では楽に環境構築ができません.
CUDA on Dockerを実現するくらいなら仮想環境の方が楽なので,こちらを推します.
pyenvで入れた特定のバージョンを消したい
pyenv uninstall 3.9.5
これで消えます.
Chocoで入れたパッケージを消したい
chocolatey uninstall PackageName
#または
choco uninstall PackageName
#または
cuninst PackageName
これで消えます.ただ,pyenv
で入れたものまで消えてくれるかは未確認です.
pyenv uninstall
で消してからcuninst
するのが無難です.
Chocoで入れたパッケージを確認したい
Chocolatey list -localonly
#または
choco list -localonly
#または
clist -localonly
でババーと入れたものが出てきます.
後書き
Pythonの環境構築のやり方は沢山あり,どれが良いかは個人によります.(悪手はありますね... Microsoft Storeから落とすとか)
今回のやり方は一番ではありませんが,個人的に一番シンプルで覚えることも少ないと思っています.
もちろんAnacondaを使えば同じこともできますが,こっちの方が重くないのでおすすめです.
お願い
この記事の内容で ? となった部分や記載されていない不具合についてコメントをください.
わかる範囲でQ&Aに追記して答えていこうと思います!