1
jmc891205 2018-07-23 11:20:15 +08:00
conda 不仅是个环境管理器 还是个包管理器
|
2
chaleaochexist OP @jmc891205 包管理器的概念类似于 pip 吗?
所以还是没区别嘛... |
3
SuperMild 2018-07-23 11:31:13 +08:00 1
conda 本身不依赖于 python 和 pip,因此可以先装 conda,再在 conda 里装 python,这与其他先装 python,再利用 python 来管理环境有着本质区别。毕竟,从一开始、从根本上就不依赖 python,感觉更彻底,更不容易出差错。
不过其实都差不多,这些东西各有各的好用,都没有大问题,随便找一个用,用得爽就继续用,用不爽就换一个。 另外,如果是用 Windows 系统,由于不用担心搞坏系统自带的 python,可以先不用环境管理器,基本上没有问题,实在遇到版本冲突再用也不迟。 |
4
ChopinWong 2018-07-23 12:52:10 +08:00
科学计算表示一直不用这些。。。
|
5
chaleaochexist OP |
6
glasslion 2018-07-23 18:38:43 +08:00 1
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 |
7
chaleaochexist OP @glasslion cool!!!
尤其第三点区别. |
8
chaleaochexist OP @glasslion 忽然想到一个小问题.
如果我用 conda 管理其他包,譬如 django 然后我想阅读 django 源码 可以实现吗?还是说默认实现不了的., 因为你说 conda 下载的是二进制包? 还是我理解有误? 希望能够得到您进一步解答. |
9
ChopinWong 2018-07-24 13:38:16 +08:00 1
@chaleaochexist 我就不用啊。。。而且上面的第三点其实。。。pip 本身就有 2/3 然后比如 tf 他其实就对应起来 tensorflow/ tensorflow-gpu。。。除非你要装特定版本号的
|
10
chaleaochexist OP @ChopinWong 是否可以详细说说,省略号里面的内容,真心请教,我没明白...
|
11
frostming 2018-07-24 21:27:51 +08:00 1
@chaleaochexist 二进制仅对包含 C 扩展的 Python 包有区别,此时 C 写的部分会编译成.so 库文件而看不到源码
像 Django 这种纯 Python 的包,是可以看源码的,因为 Python 是个解释型的语言。 |