python環境をcondaからpipへ乗り換えた
python環境をcondaからpipへ乗り換えた
特に難しいことはしていないのでほぼ雑記. conda経由でupdateした際にscipy内部でloadErrorが起きたので 今までcondaで頑張ってたがpipへ乗り換えた. おそらくパッケージ間でバッティングが起きたと考えられる.
これからpython環境を作る方はpipで統一したほうが依存関係がラクになる. pipはPython 3.4からデフォで付属するようになった。
2015‐2016年にanacondaが流行ってた理由
1.仮想環境の構築のが乱立していた: なんちゃらenvばかりだったが, condaでは2系3系のスイッチが容易だったのが流行った理由の1つと思われる.
python3.3からvenv
が標準で追加されたので,
- 3系:venv
- 2系:virtualenv
が主流になっているぽい,
- jupyter(旧ipython)の導入が簡単だった:
最初のipythonでは
ipython-core
,ipython-kernel
などの手動インストールが必要であったが, condaでは必要なパッケージがインストーラとともにインストールができた.
今では,pip install jupyter
一発でいける.
condaの問題点
依存関係がメンドイ:
condaを利用すると,packageの入手パターンは以下3パターンになる.
condaにしかない:
conda install
で済むconda channelにしかない:
conda -c channelname install
で済むが依存パッケージがチャンネル優先になる.condaとconda channelに両方ある:チャンネルの方を使うとチャンネルの方の依存関係が優先される. なので場合によってはdowngradeが頻発し,依存関係がややこしくなる.
conda・pipに両方ある:conda installで済むがなんかの拍子にpipでインストールしてしまうとバッティングを起こす.
pipにしかない:これが一番厄介,
pip install
できるが,依存パッケージもpipでインストールされてしまいバッティングが起きる.
イメージとしては以下の階層構造になる.
- conda - package1 - pip - package2 - conda channel - package3
pipに統一すると以下にまとまる.
- pip - package1 - package2 - package3
condaの削除
参考:https://echomist.com/conda-uninstall/
Windowsの場合,「コントロールパネル」から「プログラムのアンインストール」でpythonをアンインストールすれば基本的に問題ない.
内部ファイルを削除してくれるanaconda clean
も利用できる.
conda install anaconda-clean anaconda clean
https://docs.conda.io/projects/conda/en/latest/commands/clean.html
Pythonのインストール
デフォのインストーラは32bitになっているので 64bitのインストーラ"Download Windows x86-64 executable installer"をみつけてDLする.
Python Releases for Windows | Python.org
pipはPython 3.4からデフォでpip付属するようになった