はじめに
複数のバージョンのPythonをインストールしています。
あのリポジトリを動かすのにはこのPythonの3.9、このリポジトリは3.11と使い分けるとき、以前はanacondaや、conda、pyenvなどを使っていました。しかし、特にanacondaやcondaは複数の環境管理が難しくて訳わからなくなりがちだし、容量もめちゃくちゃ食う。正直、嫌。
何で初心者向けの本はみんな「anaconda〜!」なんだろ?
で、いつもvenvで仮想環境を作っているのですが、毎回bashの設定ファイルである.bash_profile
に記載されてる内容を入れ替えることでPythonのバージョン変更に対処してました。
ま、最後にインストールしたPythonが使われることに気付いたから、こんな面倒なことをしてたんですけどね。繰り返しますが、とにかく面倒。
やりたいこと
condaや、pyenvの様にPythonのバージョンを使い分けたい!
きっかけ
AzureのAI Searchでやりたいことがあっていろいろ試してたんですがなかなか実現できず、意気消沈。気分転換にLinuxを触ってみようと、UdemyのLinuxの講座を受講してたんですよ。MacにUTMを入れてubuntuも入れました。w
この講座、bashの説明がすごく丁寧で分かりやすいんです。というか、まだ半分くらいしか終わっていないのですが、ここまではbashのみという感じ。w
この中で「alias」のレクチャーで閃いたんです。
このalias
、Pythonのバージョン変更に使える
環境
2020 MacBook Air M1
ターミナルは普段はbash
です。zsh
にも使えると思う。
pythonはAnacondaとかは「使わず」以下からダウンロード、インストールしたモノです。
alias
講座の中のaliasのレクチャーで思いついたと書いたんですが、まずはaliasって何なの?ってことは理解しなきゃならんですね。
一言で言うと「コマンドのショートカット」みたいなものです。
ailiasの例
例えばbashで現在のフォルダにaaa.txt
があるとして、ターミナルに
$ open aaa.txt
と入力してあげればテキストエディタなどでaaa.txt
を、開くことができます。
が、何度も実行するとopen
と入力するのすら面倒になったとき、op
と入力るすだけでopen
の機能を果たせると楽で良いよねー!
講座を聞ていて、こういう時に使うイメージを持ったんですよ。
$ alias op=open
こうやって入力してあげるとターミナルを閉じない限り、op aaa.txt
でaaa.txt
を開くことができるんですねー!
$ op aaa.txt
ずばり、いつ使うんだ?笑
でも、ターミナルを閉じるとこのaliasで設定した内容は消えちゃう。
永続化するためにはbashやzshの設定ファイルたる.bash_profile
や.zshrc
を編集する必要があります。おう!触っちまおう!
大丈夫!もし動かなくなったらPythonを再インストールだ!w
bash_profileとzshrc
先にも書きましたが、僕の解釈はbashやzshの設定ファイル的なやつ。
これを開くにはターミナルで以下をポチポチ打ってテキストエディタで開きましょう。
$ open .bash_profile
もしくは
$ opne .zshrc
例えばPythonの設定のところはこんな感じで書かれてます。(スクショ)
解説するほど詳しくないけど、以下のような理解で良いと思う。
-
PATHの行
PATHの行の一番最後の${PATH}
は環境変数に記載されているPATHを取得してきているところ。その前に書かれているのが、Pythonの3.10ののパス。このパスを付け加えるということをしてます。
例えばターミナルで以下を打ってみましょう。
$ echo ${PATH}
echo
はbash
のprint
に該当します。
いっぱいパスが:
で繋げられた形で表示されます。
この先頭にPython3.10のパスを付け加えるということをやってます。 -
exportの行
環境変数の書き換えを行う。 -
aliasの行
そしてここでエイリアスを作る。
つまり、pythonと入力すると設定したパスの中からこのファイルを探してくるってこと。
じゃぁさ、このpythonってショートカットをさ、python3.10用にすれば良いのでは??
で、やってみよう!
-
.bash_profile
や.zshrc
を開く
上に書いたけど、繰り返し書くと、
open .bash_profile
もしくは
opne .zshrc
-
内容を書き換える
例として3.11の場合、python311
と打てば3.11になると嬉しくない?
ということで、下記スクショの下線の部分をpython
からpython311
に書き換えました。
他のバージョンも同様にして好きなように書き換えちゃいましょう。
※ 僕はいつも使うのが3.10なのでメモとしてdefaultというコメントを入れてます。 -
書き換えた内容が反映されるのはターミナルを起動した時なので、ターミナルを一旦終了する。
python3.8を使いたい時はpython38と打てばYOSHI!
環境作るときに
python38 -m venv .venv
みたいな感じ。
怠惰なのでいつも使う3.10については単にpython
にしておいた
だってさ、怠惰であれってジョブズも言ってたじゃん
Stay hungry! Stay foolish!
まとめ
快適になった!そしてaliasがどんな機能かやく理解できた!
ま、楽しんで何かやってれば応用先が出てくるって楽しい!
おっと、「楽しい」が「楽しい」を生んでんじゃん!
Linuxの講座が終わったらAzureがんばろっ!