1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自分だけのPythonのバージョン管理ツール

Last updated at Posted at 2024-03-23

はじめに

複数のバージョンの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」のレクチャーで閃いたんです。

このaliasPythonのバージョン変更に使える

環境

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.txtaaa.txtを開くことができるんですねー!

$ op aaa.txt

ずばり、いつ使うんだ?笑

でも、ターミナルを閉じるとこのaliasで設定した内容は消えちゃう。
永続化するためにはbashやzshの設定ファイルたる.bash_profile.zshrcを編集する必要があります。おう!触っちまおう!
大丈夫!もし動かなくなったらPythonを再インストールだ!w

bash_profileとzshrc

先にも書きましたが、僕の解釈はbashやzshの設定ファイル的なやつ。
これを開くにはターミナルで以下をポチポチ打ってテキストエディタで開きましょう。
$ open .bash_profile
もしくは
$ opne .zshrc

例えばPythonの設定のところはこんな感じで書かれてます。(スクショ)
スクリーンショット 2024-03-23 15.49.41.jpeg
解説するほど詳しくないけど、以下のような理解で良いと思う。

  • PATHの行
    PATHの行の一番最後の${PATH}は環境変数に記載されているPATHを取得してきているところ。その前に書かれているのが、Pythonの3.10ののパス。このパスを付け加えるということをしてます。
    例えばターミナルで以下を打ってみましょう。
    $ echo ${PATH}
    echobashprintに該当します。
    いっぱいパスが:で繋げられた形で表示されます。
    スクリーンショット 2024-03-23 23.03.40.png
    この先頭にPython3.10のパスを付け加えるということをやってます。

  • exportの行
    環境変数の書き換えを行う。

  • aliasの行
    そしてここでエイリアスを作る。
    つまり、pythonと入力すると設定したパスの中からこのファイルを探してくるってこと。

じゃぁさ、このpythonってショートカットをさ、python3.10用にすれば良いのでは??

で、やってみよう!

  • .bash_profile.zshrcを開く
    上に書いたけど、繰り返し書くと、
    open .bash_profile
    もしくは
    opne .zshrc

  • 内容を書き換える
    例として3.11の場合、python311と打てば3.11になると嬉しくない?
    ということで、下記スクショの下線の部分をpythonからpython311に書き換えました。
    他のバージョンも同様にして好きなように書き換えちゃいましょう。
    スクリーンショット 2024-03-23 15.49.41.jpg
    ※ 僕はいつも使うのが3.10なのでメモとしてdefaultというコメントを入れてます。

  • 書き換えた内容が反映されるのはターミナルを起動した時なので、ターミナルを一旦終了する。

  • ターミナルを起動して確認してみる。
    さぁ、レッツラゴ
    それぞれのバージョンを確認してみましょう。
    スクリーンショット 2024-03-23 15.48.49.png
    良くな〜い?ニヤニヤ

python3.8を使いたい時はpython38と打てばYOSHI!
環境作るときに
python38 -m venv .venv
みたいな感じ。

怠惰なのでいつも使う3.10については単にpythonにしておいた
だってさ、怠惰であれってジョブズも言ってたじゃん

Stay hungry! Stay foolish!

まとめ

快適になった!そしてaliasがどんな機能かやく理解できた!
ま、楽しんで何かやってれば応用先が出てくるって楽しい!
おっと、「楽しい」が「楽しい」を生んでんじゃん!
Linuxの講座が終わったらAzureがんばろっ!

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?