WindowsとLinux(CentOSかUbuntu)でPython環境を壊さないためのメモをしておく。自分の使い方の場合、現時点ではこのやり方が一番良さそう。
まずpipについて
例えば普段pyコマンドでpythonを起動しているとする。この環境にモジュールを入れたいときは
py -m pip install numpy
のような記法が強く推奨される。pip, pip3, pip3.9など、どれがどれだかそのうちわからなくなるので。
所望のバージョンのpythonが正しく起動できている限り、これでモジュールが入れられるはず。
Windowsにインストール
Python標準のインストーラーを使ってインストール。新しいバージョンが出たら都度インストーラーを落としてきてインストールするので問題ない。
このときAdd Python 3.x to PATHすると混乱のもとになるのでしないように。
ストアアプリ版も変に競合するので入れない方が良い。
py.exeというランチャーがついてくるので、pyコマンドでpythonを起動する運用にする。バージョンは引数で選べるし、省略すれば自動的に最新のものが起動される。
今まではパスが通っていると思って使っていたモジュールたちは、以下のようにpyランチャー経由で呼べば良い。
py -m IPython py -m jupyter lab
参考:
gammasoft.jp
Linuxにインストール
スパコンなど、自分がsudoersに入っていない場合の手順。pyenvを使うのが良い。
(WSL2 とかだと sudo できる && 必要なパッケージが揃っていないため以下をやっておく)
sudo apt update sudo apt install build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev libreadline-dev libsqlite3-dev libopencv-dev tk-dev git
pyenvのgithubページにある通り、
git clone https://github.com/pyenv/pyenv.git ~/.pyenv cd ~/.pyenv && src/configure && make -C src echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile source ~/.bash_profile
すればgit cloneしかしないのでsudo aptが不要で嬉しい。なお2行目はpyenvの高速化のためのもので、コケたら別にそれはそれでいいらしい。
さらに
pyenv install 3.9.2 pyenv global 3.9.2
これでpython3.9.2がインストールされ、pythonコマンドに紐付けられる。
他に何がinstall出来るか知りたいときは
pyenv install -l
で一覧が出せる。
現在何が入っていて、そのうちどれがデフォルトなのか知りたいときは
pyenv version
すれば良い。