LoginSignup
6
10

More than 1 year has passed since last update.

python環境(windows10)

Last updated at Posted at 2021-05-01

windows10でのpython環境を作成するときの一例

  • pyenvでpythonバージョンを切り替える
  • パッケージはvenvで個々に管理する

全体の流れ

1.pythonのインストール
2.pyenv-winのインストール
3.必要に応じてvenv

1. pythonインストール

公式のインストーラーでインストール
add pythonXX to PATH にチェックをいれないと面倒なのでチェックを必ず入れる
それ以外はデフォルトのまま
(必要な場合はカスタマイズしてください)

2. pyenv-winのインストール

pyenv-win

cmd
pip install pyenv-win --target %USERPROFILE%/.pyenv

※ pythonインストール時にPATHに追加し忘れて、C:\Users\ユーザー名\AppData\Local\Programs\Python\Python39だけPATHに手で追加したがpipが動かないので先頭にpython -m をつけて(これ↓)実行した)

cmd
pipを直接指定して動かない場合
python -m pip install pyenv-win --target %USERPROFILE%/.pyenv

※PowerShell(or Git Bash)の場合は変数の名前が異なる。(\$HOMEを使用する)

powershell
pip install pyenv-win --target $HOME\.pyenv

これで、C:\Users\ユーザー名.pyenv が作成される。

この2つのパスをPATHに追加する
C:\Users\ユーザー名.pyenv\pyenv-win\bin は存在しているが 最初はshimsは無い。

%USERPROFILE%\.pyenv\pyenv-win\bin
%USERPROFILE%\.pyenv\pyenv-win\shims

手で追加してもいいし、次のpowershellでやってもよい
(手で追加の場合は、先頭におくこと。
 既存の "C:/Users/[user]/AppData/Local/Microsoft/WindowsApps" これより先に位置していないと、pythonコマンドを叩くとMicrosoftストアが表示されてしまう)

powershell(管理者実行が必要)
[System.Environment]::SetEnvironmentVariable('PATH', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"Machine")

※多くの解説記事にこれも書いてあるけどなくても動くかも
環境変数の「PYENV」に
%USERPROFILE%\.pyenv\pyenv-win
を手で追加。または次のpowershell

powershell
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

新しくcmdかpowershellを立ち上げて(新しく立ち上げないと今設定した環境変数が反映されない)
正しく設定されているか確認。

pyenv --version
pyenv 2.64.6.1

利用できるバージョンの確認

pyenv install --list
または
pyenv install -l

(ずらずらと利用可能なバージョンが表示される)

使いたいバージョンを入れる

pyenv install 3.7.9
:
pyenv install 3.9.4

使いそうなものをいくつか入れておけば、瞬時に切り替えられる。(後述)

installしたものは、versionsで確認できる

pyenv versions
3.7.9
3.9.4

切り替えるときは

pyenv local 3.9.4

local を使って切り替える。
local はユーザごとの環境を変えるコマンド。全ユーザに影響するのはglobal
(私はlocalしか使ったことがない)

このコマンドを叩いたディレクトリに.python-versionという、バージョン番号が書かれたファイルが作成される。
その場所でpythonを実行するときは.python-versionに書かれたバージョンのpythonが実行される。

用途やプロジェクトに応じて、pythonのバージョンを切り替えられる。

現在設定されているバージョンの表示は

pyenv version
さっきのはversionsで複数形だったがこっちは単数形

バージョンがうまく切り替わらないとか、問題が発生した場合

pyenv rehash

今のところ使ったことはない。

3. 必要に応じてvenv

仮想環境を作る
仮想環境ごとにパッケージを管理できるので、
用途やプロジェクトごとにそれ用のパッケージをインストールできる。

プロジェクトA:pandas1.0、numpy1.8
プロジェクトB:pandas1.2、numpy1.19

を使いたい場合とかに以下のように2つ仮想環境作って、切り替えて使用する。

プロジェクトA -> 仮想環境A
プロジェクトB -> 仮想環境B

仮想環境は任意の場所にフォルダ名(仮想環境名)を指定して作成できる。

cmd
python -m venv <任意の名前>


この名前にすることが多い
python -m venv .venv

切り替えるときはその場所のスクリプトを叩く。

cmdまたはVSCodeのターミナルなど
仮想環境名/Scripts/activate.bat



settings.json
// VSCodeでは ".vscode\settings.json" にこのスクリプトが実行されるように設定する
{
  "python.pythonPath": ".venv\\Scripts\\python.exe",

/* お好みで
  "python.linting.flake8Args": [
    "--max-line-length=120",
    "--max-complexity","20"
  ],
  "python.dataScience.textOutputLimit": 0,
  "editor.mouseWheelZoom": true
*/
}

Anaconda、virtualenv、pipenvなどpythonの環境管理はさまざまありますが、いろいろ試した結果この形に落ち着きました。

6
10
1

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
6
10