1. conda 不仅仅是 “ Python 包管理器”,它想成为 数据科学领域各种软件的包管理。Python 本身就是一个包,可以用 conda 安装不同版本的 Python , 而 virtualenv virtualwrapper pipenv 不可以
2. conda 流行主要是靠安装二进制包方便 。Pypi 全靠社区维护,如果包的提交者不提供 window,mac 的二进制安装包, 使用者就要自己编译, 安装就很费劲
3. python packaging 本身就不是为二进制分发设计的.
以 torch 为例:
Os(Linux/Windows/Mac), Python 版本(2.7/3.5/3.6), CUDA 版本(8/9)
那么一个 torch 版本对应的二进制版本就有 3*3*2=18 个
pip 并没有一个机制去自动判断该安装哪个二进制包, 所以 pip 安装 pytorch tensorflow 是要靠人手动选择对应的包的
pip3 install
http://download.pytorch.org/whl/cu90/torch-0.4.0-cp35-cp35m-win_amd64.whl conda 把相关信息打包在了包的 metadata 里,就能自动判断了:
conda install pytorch cuda90 -c pytorch