無駄な記述が多かったので書き直しました。こっちの方が早くみ終わります。
http://qiita.com/miyamotok0105/items/5f26e4ae41f0e35ded16
deep learing勉強用に環境構築。
結構苦労したので自分用にまとめました。
あまり相性が良くないようですが、anacondaとpyenv両方を入れています。
condaで環境切り替えします。
####環境設定ツール
・pyenv,anyenv...pythonバージョンの切り替え
・virtualenv...pythonライブラリの独立環境構築
・anaconda...pyenvとvirturalenvの合体
・brew...macのライブラリ管理ツール
・pip...pythonのライブラリ管理ツール
・conda...pythonのライブラリ管理ツール
###環境構築でよくあるエラー
インストールされてない➡︎インストールする
pythonバージョンが違う➡︎切り替える
パスが指定されてない➡︎指定する
パスが間違ってる➡︎パスを正しくする
依存関係に問題がある➡︎アンインストールして再インストール
###大まかなインストール流れ
- macでの環境設定
brewでpyenvをインストール
pyenvでanacondaかminicondaかpythonバージョンを指定してインストール
condaでpython2系か3系の仮想環境を構築
pip,brewでライブラリをインストール - ubuntuでの環境設定
pyenv公式ページでpyenvをgitから落とす。
pyenvでanacondaかminicondaかpythonバージョンを指定してインストール
condaでpython2系か3系の仮想環境を構築
pipでライブラリをインストール - windowsでの環境設定
anaconda公式ページで2系か3系のインストール
pipでライブラリをインストール
https://www.continuum.io/downloads
#1、インストール
##brewのインストール
macのプログラム環境構築ツール
opencvなど。pipからインストールするツールとbrewからインストールするツールがある。
brewからインストールした場合はリンクを貼らないとpathが通らずにpythonから呼び出せないことがある。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
##setup tool
macデフォルトのpythonに入ってない場合に入れる。pipが入ってない場合などに必要。
curl https://bootstrap.pypa.io/ez_setup.py -o - | python
setup toolsのアップグレード
pip install --upgrade setuptools
##pyenvのインストール
pythonのバージョンを切り替えるツール
brew install pyenv
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
pyenvコマンドが反応することを確認
公式ページ
https://github.com/yyuu/pyenv
pyenvでインストールできる一覧を表示
pyenv install -l
pyenvからpythonをインストール
pyenv install 2.7.12
インストール後にはpathを指定する
~~bashの場合は~/.bashrcに書きを追記。
anaconda3のみ使ってそこからpeenでバージョンを切り替えることをしない方法をとった。
conda createで新しいバージョンでpython2系などの環境を作成と切り替えをする。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
export PATH="$PYENV_ROOT/versions/anaconda3-4.1.1/bin/:$PATH"
#localの場合は実行したフォルタに.python-versionのファイルが出来る
pyenv local 2.7.12 #今いるフォルダ以下のバージョンを切り替え
pyenv global 2.7.12 #全体のフォルダでバージョンを切り替え
pyenv rehash #反映
#pipでライブラリをインストール
pipはpythonのライブラリ管理ツール
rubyではgem。C#ではnuget。
pip install hogehoge
ライブラリをまとめてインストール
pip install -r requirements.txt
pipを全削除
pip freeze > piplist.txt
sudo pip uninstall -r piplist.txt
バージョン指定
pip install six==“1.8.0”
pip自体をアップデート
pip install -U pip
or
pip install --upgrade pip
pip一括アップデート
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U
pip --version
pipのインストール先を指定する
pip install --install-option="--prefix=$HOME/local" hoge
アンインストール
pip uninstall hogehoge
##ipythonのインストール
pip install ipython
ipythonの実行
ipython notebook
##jupyter notebook
GUIベースでpythonを使いたい場合
pip install -U jupyter
jupyterの実行
jupyter notebook
##anacondaのインストール
anacondaは使いそうなライブラリがあらかじめ纏められたセット。
virtualenvと同じ機能もあり、元の環境を壊さない。
pyenvから特定のバージョンのanacondaをインストール
pyenv install anaconda-hogehoge
anaconda環境複製(2系のpython環境)
conda create -n py27 python=2.7 anaconda
同じ環境を複製
Clone an environment
現在のanaconda環境から出る
source deactivate
anaconda環境削除
conda remove --name py27 --all
condaを再インストール
rm -rf ~/.conda
ファイルからanaconda環境を使う
conda env create -f environment.yml
conda list
別のバージョンをインストール
conda create --name snakes python=3
source activate snakes
conda info --envs
python —-version
conda内でpythonのアップデート
conda update python
conda内でpythonのアップグレード
conda install python=3.5
パッケージインストール
conda install --name bunnies beautiful-soup
conda自体のアップデート
conda update conda
conda update anaconda
全体一括アップデート
conda update --all
anacondaのpipをinstalll
~/.pyenv/versions/anaconda3-2.4.1/bin/pip install [パッケージ名]
anacondaのpipをアップデート
~/.pyenv/versions/anaconda3-2.4.1/bin/pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs ~/.pyenv/versions/anaconda3-2.4.1/bin/pip install -U
アンインストール
conda uninstall hogehoge
##git
!.gitkeep
*.DS_Store
##opencvのインストール
試してないけど最近は -n [環境名]ってのが大事になったと思う。
conda install -c menpo opencv=2.4.11
conda install -c menpo opencv3=3.1.0 -n [環境名]
試してないけど最近は -n [環境名]ってのが大事になったと思う。
conda install -c menpo opencv3=3.1.0 -n [環境名]
conda install -c https://conda.binstar.org/jjhelmus opencv
公式ページ
https://anaconda.org/menpo/opencv
https://anaconda.org/menpo/opencv3
バージョンのチェック
import cv2
cv2.__version__
アンインストール
何個も入っちゃってた場合は全部消す
conda uninstall -c menpo opencv=2.4.11
conda uninstall opencv
conda uninstall opencv3
全部消えたかを確認
conda list | grep opencv
リンクを貼る
brew link opencv3 --force
contribをインストールしたい場合
※brewで入れた場合はパスを通す
http://blog.amedama.jp/entry/2015/10/01/223056
brew install opencv3 --with-contrib #python2系の場合
or
brew install opencv3 --with-contrib --with-python3 #python3系の場合
tapは公式ライブラリではないものを入れる時に使う。
pyenvで切り替えてるのでsourceでライブラリのpathも切り替えないとcvが読み込まれない。
brew tap homebrew/science
brew install opencv
source ~/.bashrc
git clone https://github.com/Itseez/opencv.git
cd opencv
mkdir build
cd build
cmake ..
make -j4 or make -j8
sudo make install
※ほんとうにハマった。makeから入れるとopencvがいたるところでエラーになって、一旦pyenvから入れ直したら動きました。
5時間くらいハマった。。。 うまくいかないときはcondaから入れましょう。
git clone https://github.com/jayrambhia/Install-OpenCV.git
cd Install-OpenCV/Ubuntu
./opencv_latest.sh
opencv2.4を全部消す
sudo apt-get autoremove opencv-doc opencv-data libopencv-dev libopencv2.4-java libopencv2.4-jni python-opencv libopencv-core2.4 libopencv-gpu2.4 libopencv-ts2.4 libopencv-photo2.4 libopencv-contrib2.4 libopencv-imgproc2.4 libopencv-superres2.4 libopencv-stitching2.4 libopencv-ocl2.4 libopencv-legacy2.4 libopencv-ml2.4 libopencv-video2.4 libopencv-videostab2.4 libopencv-objdetect2.4 libopencv-calib3d2.4
普通にmake uninstall
make uninstall
##opencvのビルドエラーの場合
libdc1394 error: Failed to initialize libdc1394
CMakeListsの中身を修正。-D WITH_1394=OFFにする。
https://github.com/opencv/opencv/blob/master/CMakeLists.txt
参照
http://worktoolsmith.com/ubuntu-opencv/
##dlibのインストール
sudo pip install lib
エラーが出る場合condaで入れればいい
http://paper.hatenadiary.jp/entry/2016/09/04/173818
brew install cmake
brew install boost-python
conda install -c menpo dlib=18.18
##tensorflowのインストール
####パッケージ依存エラー。既にsetuptoolsが入ってるとエラーになる。
Cannot remove entries from nonexistent file /Users/user/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/easy-install.pth
この場合は--upgradeをつける
~/.pyenv/versions/anaconda3-4.1.1/bin/pip install --upgrade --ignore-installed $TF_BINARY_URL
####numpyの依存関係でエラーになる場合あり
ImportError: numpy.core.multiarray failed to import
http://qiita.com/LyricalMaestro0/items/fe5baa162978cb3f7030
#chainerをインストール
バージョン指定をしてインストール
sudo ~/.pyenv/versions/anaconda3-4.1.1/envs/py27/bin/pip install chainer==1.5.1
#2、バージョン切り替えと確認コマンド
##pythonのライブラリのパスを確認
インストールパスの確認
python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())"
or
python
>>> import sys
>>> sys.path
更新可能なパッケージ一覧を表示
pip list -o
pip show <package>
バージョンの確認
python --version
python -V
#pyenvでバージョンの切り替えと確認
現在選ばれているpythonバージョンの確認
pyenv versions
pyenvで環境切替
※ここはあまり使わないでcondaで環境切り替えしたほうが良い。
pyenv local anaconda3.4.1
pyenvで切り替えた後にするおまじない
pyenv rehash
インストール済みライブラリ一覧の確認
pyenv install -l
##anacondaでバージョンの切り替えと確認
ライブラリ一覧
conda list
ライブラリを検索
conda search <foo>
環境一覧
conda info -e
conda info --envs
conda env list
環境切り替え
source activate hogehoge
※pyenvと衝突した場合
source versions/anaconda3-2.5.0/bin/activate hogehoge
windowsはsourceコマンドがないのでactivateを直接実行
activate hogehoge
環境を抜ける
source deactivate
anacondaごと消す場合はanacondaのフォルダーをそのまま削除
pythonバージョンをチェック
conda search python
パッケージ一覧
conda list
conda list -n snowflakes
####切り替え時に起きるエラー
※pyenvでバージョンを切り替えるときは、一度rootにcondaを戻してから切り替えると直る場合もあった。謎
Your PYTHONPATH points to a site-packages dir for Python 2.x bet you are running Python 3.x!
pythonpathを場合分けして解決
export PYTHONPATH="/usr/local/lib/python2.7/site-packages/:$PYTHONPATH"
export PYTHONPATH="/usr/local/lib/python3.5/site-packages/:$PYTHONPATH"
#学習
サーバー側で学習をさせる場合はnohupを使うとバックグラウンドで動いてくれるので便利
nohupはターミナルの接続が切れた場合にハングアップシグナル(SIGHUP, HUP)という強制終了の命令を無視する。
こんな感じで書く。
nohup sh run_minist.sh &
nohupの例
nohup ping 8.8.8.8 &
jobs
fg %1
#python基礎
上位階層ディレクトリのファイルをimportする
import sys,os
sys.path.append(os.pardir)
from a import *
#文字化け対策
##python3の場合
echo $LANG
をした場合にcになっていることがある。
export LANG=en_US.UTF-8
に変更すると日本語が表示される。
#以下はやらないほうがいい設定
【注意】pyenvとanacondaを共存させた場合に.pyathon-versionを見てpathを切り替えた。使っているバージョンの分だけ書き換えて使用を試みたがこのやり方をやめた。(結局パスが通らないエラーになったのでanacondaのみで環境切り替えしてpyenv切り替えを使わない方向へ。)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
if [ ! -e "./.python-version" ];
then
echo not exits
else
A=`cat ./.python-version`
if [ "anaconda-2.4.0" = ${A} ];
then
echo switch anaconda-2.4.0
export PYTHONPATH="/usr/local/lib/python2.7/site-packages/:$PYTHONPATH"
export PATH="$PYENV_ROOT/versions/anaconda-2.4.0/bin/:$PATH"
else
echo switch anaconda3-4.1.1
export PYTHONPATH="/usr/local/lib/python3.5/site-packages/:$PYTHONPATH"
export PATH="$PYENV_ROOT/versions/anaconda3-4.1.1/bin/:$PATH"
fi
fi
##自動rehash
pyenvで切り替えるたびにrehashするのが面倒くさい場合
brew install homebrew/boneyard/pyenv-pip-rehash
##どうしても消えない場合
ちょっと危険かもだけど。自己責任で。結局このあとpyenvから入れ直した。これもやらないほうがいい。
sudo find / -name "opencv" -exec rm -if {} ;
#windows編
コマンドラインから入れれるものと、インストーラから入れるものがバラバラで正直つらい。
python環境はanacondaインストーラで直接入れた。
windowsのubuntuでもインストール中。
##gfortran
matplotlibがfortranに依存してたのでインストーラで入れた。
https://qiita.com/HirofumiYashima/items/846cd8e51408ab8c88f9
##SciPy
全然pipで入らないのでwhlの形式でgitから落として直接入れた。
scipy‑0.19.0‑cp36‑cp36m‑win_amd64.whl
python -m pip install D:\PythonInstaller\scipy-0.19.0-cp36-cp36m-win_amd64.whl
amdなのかx86なのか64なのか
winなのかlinuxなのかmacなのか
python2.7なのかpython3.5なのか
細かく気にしてダウンロードした。
##dlib
condaもあった。boostってのが全然ビルド通らなかったので、condaに逃げた。
conda install -c conda-forge dlib=19.4
#condaについて(windows)
xcodeのcocoapodsなど、この手のツールにありがちなキャッシュを持ってる実装。
なので稀にcondaにも影響を与えるライブラリを
エラーの出るライブラリに上書きした場合はconda自体をアンインストールするかキャッシュを消す必要がある。pipすらこけたりして身動きが取れなくなる。
キャッシュの場所。この中を全部消すと再度取れる。
C:\Users\[ユーザー名]\AppData\Local\Continuum\anaconda3\pkgs
ちなみにcondaで作った環境は下記
C:\Users\[ユーザー名]\AppData\Local\Continuum\anaconda3\envs