小型マイコン遊び以外でも,ちょっとしたテキストデータの処理等で標準のPythonを使う場面が増えてきた。とても便利。
ふと,自分のMacを見たら,/usr/bin/python3
があることに気づいた。おかしいな。このMacにはインストールした記憶ないのに...
(Catalina 10.15.7)
$ which python
/usr/bin/python
$ python --version
Python 2.7.16
$ which python3
/usr/bin/python3
$ python3 --version
Python 3.8.2
$
参考URL
- https://geniusium.hatenablog.com/entry/2020/05/07/004816
- https://ottan.jp/posts/2020/04/macos-catalina-python3-default/
このままこの python で pip していいのだろうか? 疑問に思い,更に調べてみると,venv
で仮想環境を作る,という手法が一般的だそうだ。なるほど。勉強になる。
やってみた。私は fish
シェルを使っているので,.venv/bin/activate.fish
を使うようだ。
numeru55@numeru55-MacBook-Pro-13 ~> mkdir venv_test
numeru55@numeru55-MacBook-Pro-13 ~> cd venv_test/
numeru55@numeru55-MacBook-Pro-13 ~/venv_test> which python3
/usr/bin/python3
numeru55@numeru55-MacBook-Pro-13 ~/venv_test> python3 -m venv .venv
numeru55@numeru55-MacBook-Pro-13 ~/venv_test> source .venv/bin/activate.fish
(.venv) numeru55@numeru55-MacBook-Pro-13 ~/venv_test> which python3
/Users/numeru55/venv_test/.venv/bin/python3
(.venv) numeru55@numeru55-MacBook-Pro-13 ~/venv_test> deactivate
numeru55@numeru55-MacBook-Pro-13 ~/venv_test>
これで安心してpipできる。もちろんスクリプトをシェルから直接実行する場合に
#!/usr/bin/env python3
としないと,仮想環境のpython3を使わないので注意が必要だ。
で,肝心の /usr/bin/python3
だが,homebrewを使うときにXcodeとともにインストールされたもの,と断定した。
homebrewを導入していないmacにも/usr/bin/python3
(らしきもの)があり,terminalで実行してみると,Xcodeの導入をうながされるからだ。なるほど。これで納得。
(補足)
小型マイコンで遊んでいると,標準のPython(CPythonとも言うらしい)がいろいろ動いていることを体験していた。これらはいわばpythonの仮想環境を使っているようだった。
- Thonny は自前で local python という名前で持っている。GUIでpipして,thonnyからterminalを呼び出すことで,ライブラリーをインストールされた環境を使うことができる。
- esp32のバイナリーを書き込むとき,Arduinoなどでは裏で(堂々と?)
esptool.py
が動いている。 - Visual Studio Code を使っているときも見たことがある