はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

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が標準で追加されたので,

が主流になっているぽい,

  1. 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付属するようになった