はじめに
Macでpythonを使う時に覚えておいた方がいい備忘録について記載する
Windowsは手順が変わると思われるのであくまでMacのみということで限定する
###pyenv
pythonを複数バージョンで使いたいという時に使う
具体的にはbrewから以下の手順でインストールする
brewのインストールがまだというかたは以下のサイトを参照し
TOPページにあるとても長いコマンドをコピペしてインストールしておく
インストールが終わったら
brew install pyenv
とする
この時エラーが私の環境だと出たのでユーザの環境変数のファイル(私はzshを使っていたので.zshrc)に
以下の記載を追加する
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
pyenvのインストールが終わったらまずは自分が使いたいpythonのバージョンをインストールする
以下のコマンドを実行するとインストールできるバージョンがリストアップされる
pyenv install --list
今回は3.6.6をインストールしたいので以下のようにする
pyenv install 3.6.6
インストールが終わったら以下のようにバージョンの切り替えができる
pyenv global <version名>
で覚えておこう
pyenv global 3.6.6;python3 -V
現在のインストール状態が知りたい場合は以下の通り
pyenv versions
以下のように今使っているバージョンがコメ印で表示される
* system (set by /Users/yue-pc/.pyenv/version)
2.7.16
3.6.6
また元に戻したい場合は次のコマンドを実行
pyenv global system;python3 -V
因みにanacondaなんかも入れられるのでローカルに入れたanacondaは消して今後はpyenvで個人的には管理しようと思う
pyenv install anaconda3-2021.05
pyenv global anaconda3-2021.05
pyenv versions
次のようにanacondaに切り替わっていればanaconda3のpythonになっている
system
2.7.16
3.6.6
* anaconda3-2021.05 (set by /Users/xxx-pc/.pyenv/version)
プロンプトもanacondaになっていることを確認できる
% python
Python 3.8.8 (default, Apr 13 2021, 12:59:45)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
condaもきちんとインストールされている
which conda
/Users/xxx-pc/.pyenv/shims/conda
virtualenv
pythonにはデフォルトで仮想環境にpythonが入れられる
色々試したい時に色々ローカルにpython環境を入れて思わぬ不具合にぶつかってハゲ散らかすことがないように何かやるときは必ず仮想環境下にpython実行環境を作っておくのがオススメであるというかマストであると思う
というわけで仮想環境を作る方法だが至って簡単
pythonコマンドでに"-m"でモジュール指定でvenvと指定し仮想環境名を指定するだけである
適当にhogehogeという環境を作る
なお作成される環境はローカルのpython環境になるため、version2系を入れたいとかいう場合は事前にpyenv global <pythonバージョン>
とかでpython2系に切り替えておく方が良い
※作り直せなくはないが面倒なので
- 環境作成
python -m venv hogehoge
-仮想環境へログイン
#. ./hogehoge/bin/activate
source ./hogehoge/bin/activate
(hogehoge) %
のように先頭に仮想環境名がついていればログインできたことになる
先頭の(.ドット)がないと何故か権限エラーになる場合があるので(.ドット)を忘れないように
- 20210622追記
その後の調べでsourceと(.ドット)コマンドは同じものらしい
確認したところ実行しようとしているactivateというスクリプトには実行権限が付与されていなかったのでエラーになったことが判明した※以下参考
-rw-rw-r-- 1 xxx-pc staff 2423 6 21 10:53 ./conda_python_works/bin/activate.fish
-rw-rw-r-- 1 xxx-pc staff 1271 6 21 10:53 ./conda_python_works/bin/activate.csh
-rw-rw-r-- 1 xxx-pc staff 2219 6 21 10:53 ./conda_python_works/bin/activate
実行権限がついてなくても実行できる方法としてsourceと(.)の2つが用意されているということであった
ドットだと見落しの可能性があると思うので個人的にはsourceで統一したい
- 仮想環境からのログアウト
deactivateと入力するこれだけ
deactivate
- 作成した仮想環境の削除
rmで消すだけ
sudo rm -rf ./hogehoge