LoginSignup
18
25

More than 3 years have passed since last update.

作業時間5分以内で終わるpython環境構築 最短メモ。

Last updated at Posted at 2017-06-07

Python2系と3系で切り替えたかったり、案件ごとに環境を分けたい場合の環境構築。
Dockerを使わない版。一昔前はCondaを使ってたが途中で商用有料になったし、最近(2021年2月)はpipenvと言うのが出てきてる。そのため一旦追記しておく。pipenvはpipのラッパーでRubyでいうBundler。


pipenvを入れる

pip3にするかpipにするかは環境によると思う。

pip3 install pipenv
#インストールすると下記に環境が出来上がる。
#~/.local/share/virtualenvs/hogehoge
#同時にPipfileと言うのもできるが、pipenv shellしたときのカレントディレクトリにある。
#Python3系の環境を作る
pipenv --python 3
#細かくバージョン指定もできる
pipenv --python 3.6.2
#反映
pipenv shell
#パスが変わってることを確認(自分はmacでやった)
which python
#元のパス    /usr/bin/python3
#変わったパス  /Users/miyamoto/.local/share/virtualenvs/hogehoge



#バージョン確認
python -V
#環境から抜ける
exit
#パッケージインストール
pipenv install hoge

#一気にインストール
pipenv install -r path/to/requirements.txt


pyenvを入れる

ubuntu
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
mac
brew install pyenv

winはpyenvいらない。condaへ。

pyenvを通す

ubuntu

bashrc
#pyenv                                                                                                                                                        
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

mac

bashrc
#pyenv                                                                                                                                                        
eval "$(pyenv init -)"

確認

pyenv versions

anacondaかminicondaをインストール

mac linux

pyenv install miniconda3-3.10.1
pyenv global miniconda3-3.10.1

win
好きなのをダウンロード
https://www.continuum.io/downloads

condaを通す

bashrc
export PATH="$PYENV_ROOT/versions/miniconda3-3.10.1/bin:$PATH"

condaでpython環境を作る

conda create -n py35 python=3.5
conda create -n py37 python=3.7

確認

conda info --e

py35って名前の環境を使用する

mac linux

source activate py35

win

activate py35

(py35)ってのがプロンプトに出てると環境を使えてる。
たまに(py35)って出てるのに環境には入れてない時がある。
動きが変だと思ったら一回deactivateして環境を抜けて入り直す。
それでも変な時はpyenv uninstallして環境を入れ直そう。

windowsはcondaを一度使ってみるべし

pipで入らないがcondaで入ったというのがあった。

conda install -c conda-forge keras
#3.1.0系
conda install -c menpo opencv3=3.1.0 -n [環境名]
#3.2.0系
#書いてる時点では3.1.0系にMSER_createのバグがありそうで、3.2.0で直ってると書いてるので入れ直したかった。が、入らなかった。
#conda install -c conda-forge opencv=3.2.0
conda install -c conda-forge dlib=19.4
conda install scikit-image
conda install -c conda-forge ffmpeg

2018/6/15:3.2.0を使えない問題発症

ビルドがめんどくさい。せっかく作ったC++環境も壊れそうだし。。

そして消えない。condaからopencv3が消えてくれない。

conda list | grep open
opencv3                   3.1.0                    py35_0    menpo
sudo conda install -c conda-forge opencv -n [環境]
sudo conda uninstall -c menpo opencv -n [環境]
sudo conda uninstall -c menpo opencv3
はないとかゆうし。

環境を切り替えます。

conda uninstall -c conda-forge opencv=3.2.0
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'cv2'

もう知らん。一旦放置しよう。

opencv

ビルドすると大変なので。pipかcondaで入れる。

pip install -U opencv-python

jupyterの注意点

conda createの時には-nを使って環境名を必ず付けること。-n付けないでinstallすると変になるよ。

ImportError: No module named cv2とかImportError: No module named tensorflowとか出ておかしーなーってなる時は、環境作り直そう。

jupyterでカーネル切り替え最短メモ

conda create -n py36 python=3.6
source activate py36
conda install -n py36 jupyter opencv
conda install notebook ipykernel
ipython kernel install --user --name py36 --display-name py36
jupyter noteobok

ここ参照。

Jupyter上でkernel切り替えをしてもうまく機能しない場合の解決方法

jupyerにpython2とpython3を共存

ここを見て設定
https://qiita.com/utahkaA/items/ae14623ae81f85bea4f5

pyenvでminiconda2とminiconda3を両方入れればOK。
miniconda3からpython2に切り替えてもjupyterには表示されてなかった。

jupyterのカーネルエラーとか信頼できない系のエラーが出た時。

passを生成して、暗号したのを設定ファイルに入れると良い。

...
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 99] Cannot assign requested address

pipでpermissions系のエラーが直らない。

https://stackoverflow.com/questions/27870003/pip-install-please-check-the-permissions-and-owner-of-that-directory
ごく稀に見る現象。.pyenv以下を全部消して入れ直してもダメなときある。

こんな雰囲気でowner権限を入れたりとか
$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip
--user入れたりとか
pip install --user <package name>

jupyterをサーバーからリモートで動かしたい

ここの設定をする
https://qiita.com/Miggy/items/5466a2c1e968602f3ebe

~/.jupyter/jupyter_notebook_config.pyを出力して
ipythonでパスワードをsha1にして、その内容をjupyter_notebook_config.pyに書き込んだりちょっと設定すれば良い。

あとは各クラウドでポートを開ける処理をすれば動くはず。

gcpの場合
https://towardsdatascience.com/running-jupyter-notebook-in-google-cloud-platform-in-15-min-61e16da34d52

Pythonのimportしてるライブラリパスを調べる

Opencvどこから呼んでるんだよとなったのでメモ。

import cv2
cv2.__file__
import imp
imp.find_module('cv2')

自分の場合は.pyenv以下のを見にいってたの、期待通りだった。

macに直接入れる

sudo easy_install pip

参考

https://github.com/jupyter/notebook/issues/2213
http://jupyter-notebook.readthedocs.io/en/latest/security.html
https://qiita.com/SaitoTsutomu/items/aee41edf1a990cad5be6

18
25
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
18
25