9
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Python] Anacondaとpyenvとvirtualenvと.bash_profileと

Last updated at Posted at 2017-03-16

#2018/01/03 更新
Macが壊れてしまいまして、最初からPython環境を構築していたところ
pyenvにvirtualenvなんてねーよ!!って、terminalさんに叱られてしまったので
pyenv installの際にpyenv-virtualenvもinstallするように追記しました。
virtualenv deleteできなくなっていたので、pyenv uninstall virtualenv_nameに修正。

#はじめに
Anacondaの環境でpyenv-virtualenvを使用していて
python -Vで確認してみるとPython versionが固定されてたり
terminalの行に(virtualenv_name)がずっとずっと表示されてdeactivateできなかったりしてませんか?
はい、私です。

で、Qiitaの紳士淑女な皆様方の記事を参考にやっとPythonの環境をコロコロ変更できるようになったので、
MEMO用にまとめた記事です。

参考にさせていただいた記事
Markdown記法 チートシート
HomebrewのインストールからpyenvでPythonのAnaconda環境構築までメモ
pyenv-virtualenvでディレクトリ単位のpython環境構築
virtualenv 基本的なコマンド使い方メモ
pyenvとvirtualenvで環境構築
データサイエンティストを目指す人のpython環境構築 2016
Anaconda で Python 環境をインストールする
【決定版】MacでPythonを使って『機械学習』を学ぶための環境構築

#homebrewでpyenvのインストール
まずBrewでpyenvをinstallします。
terminalを開き

pyenvとpyenv-virtualenvのインストール
$brew install pyenv
$brew install pyenv-virtualenv

Brewない方は、まずBrewをinstallします。
Qiitaにお世話になった記事がたくさんありますのでご参照ください。

#.bash_profileの編集
pyenvがinstallできましたら .bash_profile を弄ります。
Terminalを開き

.bash_profileに以下を記述
$echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bash_profile
$echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.bash_profile
$echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

"{}"を忘れないでください、後々Anacondaがpyenvで設定されてるにも関わらず python --versionがおかしな感じになりますので。

catで.bash_profileの中身を確認
$cat ~/.bash_profile

.bash_profileを書き換えたら、terminalを一度閉じて開き直すなり、
source ~/.bash_profileするなりしてください。

#pyenvでPythonのインストール
では、pyenvでPythonをinstallしていきます。
まずは、pyenvでinstallできるPythonのversionのlistを表示。

Python_version_list表示
$pyenv install -l

リスト表示されたPythonのversionの中から好きなのをinstallします。
もちろん、この記事を見ているということはAnacondaですよね?
2系と3系を両方ともinstallして検証してみてください。

Anacondaをpyenvでinstall
$pyenv install [python_version]
$pyenv install [another_python_version]

pyenvにinstallされたpythonのversionを確認しましょう。

pyenvにinstallされたpython_version確認
$pyenv versions

systemで設定されたpython_versionが複数表示されたらOKです、
またactivateされているpython_versionの頭には*が付いています。

#pyenvでGlobalなpythonとlocalなpythonの設定
ここでおさらいですがpyenvでは
global(どのディレクトリにも反映)と
local(設定時のカレントディレクトリだけ反映)のpython_versionの設定ができます。

globalなpython_version設定
$pyenv global [python_version]

うまくglobalなpython_versionが設定されたか見てみましょう。

globalに設定されたpython_version確認
$pyenv global

先ほどに設定したpython_versionが表示されましたでしょうか?

次にlocalなpython_versionを設定してみます。

localなpython_version設定
$pyenv local [python_version]

カレントディレクトリにlocalなpython_versionが設定されたか確認します。

localに設定されたpython_version確認
$pyenv local

local設定されたpython_versionが表示されたと思いますが
一旦、localに設定されたpython_versionを外します。

local設定されたpython_versionを解除
$pyenv local --unset
pyenvのinstallリストで表示されるpythonversionの更新
$brew update
$brew upgrade pyenv

#virtualenv
では、virtualenvの設定に入ります。
好きなpython_versionで仮想環境を構築して使えます。

仮想環境のpython_versionと名前を設定
$pyenv virtualenv [python_version] [virtualenv_name]

仮想環境virtualenv_nameがpyenvに追加されたか確認してみましょう。

pyenvにvirtualenv_nameが追加されたか確認
$pyenv versions

追加されたことを確認したら仮想環境virtualenv_nameをactivateしてみましょう。

仮想環境virtualenv_nameをactivate
$pyenv activate [virtualenv_name]

terminalの行頭に(virtualenv_name)が表示されましたか?
どこのディレクトリでもactivateできます。

では、次に仮想環境virtualenv_nameを解除します。

仮想環境virtualenv_nameをdeactivate
$pyenv deactivate

terminalの行頭に表示されていた(virtualenv_name)が消えたでしょうか?

最後に構築した仮想環境virtualenv_nameを削除します。

仮想環境virtualenv_nameを削除
$pyenv uninstall [virtualenv_name]

MEMO終わり!!

昨日anaconda3-4.0.0のvirtualenvをlocalに設定した上で
python -Vすると3.6.0が表示されました、3.5.1のはずなのですが……
Markdown記法を初めて使うくらい超初心者なのですが
QiitaのKnowledgeの集積で多少まともにpythonで遊べるようになりました。
たくさんの良記事を共有してくださった皆様とQiitaに最大限の感謝をしております。

9
20
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
9
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?