Help us understand the problem. What is going on with this article?

MacでanyenvをつかってPython環境構築(bash、fish対応)

More than 1 year has passed since last update.

これはcloudpack あら便利カレンダー 2018の記事です。

概要

brew install python3 というのが手っ取り早いわけですが、今後を見越して、バージョン切り替えができる環境にします。python2.xがそう簡単に廃れると思わないほうがよいです。きっと。たぶん。

brew なにそれ?という方は下記を参考ください。

5分でできるMacBook Proに最低限の開発環境構築
https://qiita.com/kai_kou/items/3107e0a056c7a1b569cd

手順

  • シェル: fish
  • *bashの手順も併記してます。

fishはいいぞぉ

fish-shell でシェルの海をスイスイ泳いでみた
https://nulab-inc.com/ja/blog/backlog/fish-shell-tutorial/

作業前の状態

fish、bash共通
# macOS Sierra
> sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G1510

# Macには2.7が最初からインストールされている
> python --version
Python 2.7.10
> which python
/usr/bin/python

# まだ入ってない
> anyenv
fish: Unknown command 'anyenv'
> pyenv
fish: Unknown command 'pyenv'

anyenvのインストール

Mac に anyenv でサクッとマルチ開発環境構築
https://qiita.com/yutackall/items/6c48cf56317d8501f6df

anyenv とは、ざっくり言うと、rbenvとか、nbenvとか複数バージョンをインストールできる **env系をまとめて管理できるツール。

です。個別にインストールするとあとで泣くことになるので、anyenvオススメです。

fish
> echo 'set -x PATH $HOME/.anyenv/bin $PATH' >> ~/.config/fish/config.fish

# fishだとevalがハマりどころ(1敗)
> echo 'eval (anyenv init - | source)' >> ~/.config/fish/config.fish
# シェルの再起動(exec $SHELL -l じゃむり)
> exec fish -l
bash
> git clone https://github.com/riywo/anyenv ~/.anyenv
> echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
> echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
> exec $SHELL -l

これでanyanvが使えるようになるはず。

fish、bash共通
> anyenv
anyenv
Usage: anyenv <command> [<args>]
()
anyenv versions

はい。

プラグインも入れておきます。

anyenvの*envたちを一括でアップデートする
https://qiita.com/sawadashota/items/825002d84088c0129c4b

fish、bash共通
> git clone https://github.com/znz/anyenv-update.git "$(anyenv root)/plugins/anyenv-update"

# fishの場合「$」があると
# 「fish: $(...) is not supported.」って怒られるのでこっち。

> git clone https://github.com/znz/anyenv-update.git (anyenv root)/plugins/anyenv-update

まだなにも*envをいれてないけど動作確認

fish、bash共通
> anyenv update
Updating 'anyenv'...
Updating 'anyenv/anyenv-update'...

はい。

pyenvのインストール

fish、bash共通
# 初回はenvsフォルダがないって怒られるので
> mkdir ~/.anyenv/envs

> anyenv install pyenv
Install pyenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.

# シェルの再起動: bash
> exec $SHELL -l

# シェルの再起動: fish
> exec fish -l

これでpyenvがインストールされたはず。

fish、bash共通
> pyenv
pyenv 1.2.6

はい。

Pythonのインストール

お好きなバージョンのpythonをインストールしましょう!

fish、bash共通
# インストール可能なバージョンを確認
> pyenv install -l
Available versions:
  2.1.3
  2.2.3
  (たくさんでてくる)

# 指定のバージョンをインストール
> pyenv install 3.6.6
()
Installed Python-3.6.6 to ~/.anyenv/envs/pyenv/versions/3.6.6

> pyenv versions
* system (set by ~/.anyenv/envs/pyenv/version)
  3.6.6

> pyenv local 3.6.6
> python --version
Python 3.6.6

はい。

仮想環境を作って入る

仮想環境はAnacondaを使うのもありなのですが、Python 3.3からvirtualenvが標準機能として組み込まれたようなので、venv+pipもあり。お好みで。

fish、bash共通
> mkdir ~/hoge
> cd ~/hoge
> python -m venv hoge
fish
# fish用のactivateがある!
> . hoge/bin/activate.fish
bash
> . hoge/bin/activate
fish、bash共通
> . hoge/bin/activate
> which pip
~/hoge/hoge/bin/pip
> deactivate

はい。

それでは、よきPython開発ライフを^^

参考

fish-shell でシェルの海をスイスイ泳いでみた
https://nulab-inc.com/ja/blog/backlog/fish-shell-tutorial/

riywo/anyenv
https://github.com/riywo/anyenv

Mac に anyenv でサクッとマルチ開発環境構築
https://qiita.com/yutackall/items/6c48cf56317d8501f6df

anyenvの*envたちを一括でアップデートする
https://qiita.com/sawadashota/items/825002d84088c0129c4b

fish shell の時に プロセスを起動し直す
http://hotoolong.hatenablog.com/entry/2018/05/07/194938

fishでのevalの設定方法
https://ema-hiro.hatenablog.com/entry/20170523/1495519890

venv: Python 仮想環境管理
https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e

Anaconda で Python 環境をインストールする
https://qiita.com/t2y/items/2a3eb58103e85d8064b6

activate.fish $(...) is not supported. In fish, please use '(.env)'. #1030
https://github.com/pypa/virtualenv/issues/1030

kai_kou
2004年からWeb系のシステムエンジニアとして開発、運用、マネジメントを経験。現在はアイレット(クラウドパック)に所属。 べ、別にいいね貰えたからってモチベーションが上がって記事とコードの品質があがるわけじゃないんだからね///
https://twitter.com/k_aik_ou
cloudpack
Amazon Web Services (AWS) の導入設計、環境構築、運用・保守をサポートするマネジドホスティングサービス
https://cloudpack.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした