1
Raven316 2021-05-26 16:10:36 +08:00 1
可以有很多个独立的环境?切换方便?我也不太懂
|
2
rationa1cuzz OP 不会有非科学运算的人用 Anaconda 吧,默认带的包也太多太大了?
|
3
Raven316 2021-05-26 16:10:54 +08:00 1
我 conda 安装包老是装不上,实际都用 pip 装的
|
4
est 2021-05-26 16:13:32 +08:00 1
|
5
rationa1cuzz OP @Raven316 我网上看 conda 的包比较少,自己还没使用过
|
6
rationa1cuzz OP @est 那优势在于切不同版本 python 的环境,这样来说对于 virtualenv 而言确实很不错,如果我只有一个 python 版本岂不是没有任何优势[手动狗头]
|
7
jimages 2021-05-26 16:22:16 +08:00 via Android 1
miniconda 的优势在于他不仅管理了 python 的依赖,还管理了二进制依赖,例如你要装一个包,这个包依赖了 cuda9.0,而你的另外一个包依赖于 cuda10.0,那么你就需要在本机上安装 cuda9.0,cuda10.0,对于一个小白用户来说,这种依赖不同二进制库何解?第场景,numpy 如果想用 mkl 的话,目前 pip 无解,只能下 openblas 的,除非手动编译,如果要手动编译,那就得安装 mkl,改配置文件,然后手动编译,而在 anaconda 上只需要 conda install,会自动安装 mkl,下载编译好的带 mkl 的 numpy 。同理依赖不同版本的 cudnn 也是一样的。
|
8
est 2021-05-26 16:38:52 +08:00 1
@rationa1cuzz conda 有一些二进制包更方便。适合手残自行编译困难的。。。
|
9
IgniteWhite 2021-05-26 17:04:55 +08:00 via iPhone 1
楼上提的差不多了。我说一些小细节:
conda 能记录环境的改动,如果不小心安装或者卸载了包和依赖,能查看 revision 历史然后回到某个版本。 另外,有些时候 conda-forge 收录包不如 PyPI 及时,如果想在同一个 conda 环境里安装这些包,只能在 conda 里面安装 pip,再用 pip 安装, @Raven316 提到了。 我个人还是优先使用 pyenv,它能装更多种不同的 Python 版本,包括 Anaconda/Miniconda 。如果使用了带 conda 的,pyenv 会在管理环境的时候会优先调用 conda 进行管理。 conda 在 solve environment 的时候,有时会特别慢。可以了解一下 mamba,一个对 conda 基于 C++的重新实现。 |
10
justaman 2021-05-26 17:11:21 +08:00 1
我也来吐槽下
conda 还是给数据科学用比较合适,深度学习啥的 一般情况,感觉 pip 更好用,简单且够用了 最让我感觉难受的是,库经常下不动,要配置源很麻烦,还有 https 的问题 之前遇到两种情况用 conda,1.pip 装不了只能用 conda 装,2.conda 可以指定 python 版本 |
11
yuruizhe 2021-05-26 17:33:42 +08:00
依稀记得,conda 的目标好像不止于此,好像甚至可以管 apt 的包,java 的包等等,要做一个超级包管理器。。。好像是,记不太清了
|
12
nightwitch 2021-05-26 18:05:44 +08:00 1
conda 不仅是一个 python 的包管理器,包括很多常用的包,比如高版本的 gcc 。
这在没有 root 权限的机器上非常方便 |
13
karloku 2021-05-26 18:41:51 +08:00
pyenv+1
windows 上以前还会用 conda, 现在都在 WSL 里装 linux 版了. 之前在 linux 里用 miniconda 主要 intel 自家优化过的 python 分发只在 intel 的 conda channel 上分发. 但是那个分发版本更新太慢了, 慢慢就不用了... |
14
codepark 2021-05-26 19:00:31 +08:00
pyenv
|
15
CEBBCAT 2021-05-26 19:02:57 +08:00 via Android
“不懂就问”不是你就在这硬发水贴的理由
|
16
locoz 2021-05-26 19:14:57 +08:00
Conda 能管的更多一些,如果只管理 Python 包的话,Poetry 目前个人感觉最爽。
|
17
imn1 2021-05-26 19:25:18 +08:00
windows 至今没解决一些包怎么装,例如 sparse_dot_topn,搜了一下是国际问题
所以转到 miniconda 下 pip 显示是 cl.exe 找不到,但根本和 cl.exe 无关,用源码编译就能看到实际上是很多编译相关的 dll 找不到,copy 这个 dll 到源码目录就会报另一个 dll 找不到……那些 dll 的路径在环境变量 path 里面都有的,搜了一遍无解 conda 预装太多的包,我这里很容易卡死,安装包时分析环境(依赖)转圈圈可以长达几十分钟到几小时,也是国际问题,miniconda 装相同的包才几分钟 另外,conda 不要一开始就装 opencv,总是报 cv2.cv2 找不到 module,要放到最后装,或者最后重装一遍(更新了某些包出现这个问题的话,也是要重装一遍 opencv ) |
18
shayuvpn0001 2021-05-26 19:30:30 +08:00
conda 建立环境,pip 安装包,conda 打包移植。(尽量不要用 conda 源的包,数量比 pip 少,国内镜像比 pip 少,更新也比 pip 慢一点。)
conda 是真好用。。。目前总结下来的最佳实践。 |
19
sinux 2021-05-26 20:02:07 +08:00
你把 conda 理解成 brew,然后把 pip 理解成 pip /npm 就行了。
|
20
philipjf 2021-05-26 20:22:55 +08:00 via iPhone
最近正好刚接触,说一下使用心得;应用场景就是 tensorflow 跑一些简单模型,个人电脑用的是 Mac,一开始图省事就直接用官方的 docker 镜像在容器里跑。
后来因为发热实在扛不住,跟学校 it 申请了个虚拟机打算装 ubuntu,谁知道给的直接是个 windows server,访问权限还只给了远程桌面,连 SSH 都禁用了,还不给管理员权限。 一开始打算还是装个 docker 用,结果不知道什么原因 docker desktop 装不上,然后找到巨硬官方的 docker 容器插件,装上发现由于版本过旧( 1809 ),不支持 wsl2,所以只能运行 Windows 容器,遂作罢。 然后打算用 tensor flow 官方安装说明的 env 虚拟环境,但是虚拟环境的安装路径还得手工管理。 最后别人给我推荐了 anaconda,安装无需管理员权限,也能自动管理虚拟环境的安装路径,还能通过导出配置文件在不同机器上快速部署相同的环境,虽然没用上其他强大功能,但也算帮助我完成了任务。 |
21
linvaux 2021-05-26 22:54:12 +08:00
等你同时开发多个项目的时候,就会发现 conda 简直贼香
|
22
THESDZ 2021-05-27 09:48:36 +08:00
前面说 conda 多项目的,想问下
py -3 -m venv env 这个命令是干嘛的? 非 python 开发人员,入门级选手 |
23
IgniteWhite 2021-05-27 16:34:56 +08:00 via iPhone
@THESDZ 在当前目录创建一个叫 env 的文件夹,爱你在这个文件夹里面初始化虚拟环境。更普遍的写法是 python3 -m venv <path_to>/env,明确制定 env 的路径。
如果使用 pyenv 的插件 pyenv-virtualenv 的话,创建管理环境更加的方便。根据后者文档: (关于 Python 的 virtualenv 和 venv 模块) There is a venv module available for CPython 3.3 and newer. It provides an executable module venv which is the successor of virtualenv and distributed by default. pyenv-virtualenv uses python -m venv if it is available and the virtualenv command is not available. (关于 conda ) If conda is available, pyenv virtualenv will use it to create environment by conda create. 可见 pyenv-virtualenv 会在台面下使用 python 和 conda 各自的命令创建虚拟环境。台面上使用的时候,只需要用 pyenv 的命令就行了,方便。还有很多其他方便的地方和高级用法,比较推荐 pyenv 。 |
24
IgniteWhite 2021-05-27 16:37:17 +08:00 via iPhone
|