最近在用 Python ,有些混乱请教一下大家

2023-05-05 12:05:03 +08:00
 doraemon0711
主要是包管理和版本管理工具的选择是怎样的

我是在 wsl 上运行,现在是想跑一些机器学习的项目,之后可能也会自己开发一些小工具或爬虫; 平时我都是用 pyenv 配合 pip 来使用 python ,在接触机器学习时听说安装 conda 更好一些
我的理解是 pyenv 用来管理版本,conda 替代 pip 用来管理包,但我实际操作了一下发现可以在 pyenv 中安装 conda(conda 被当作了一种 python 版本),再在 conda 中不同虚拟环境下安装不同版本的 python ,感觉变成了一个套娃...所以现在用 python 的最佳实践方式是怎样的?
5249 次点击
所在节点    Python
33 条回复
doraemon0711
2023-05-05 19:06:26 +08:00
谢谢,准备试试 miniconda ,再问个问题,如果不动 base 环境,但想加一些全局的命令(例如 tldr)该怎么做
apake
2023-05-05 19:15:58 +08:00
版本管理 miniconda/pyenv + 包管理 pip/poetry/pdm. 搞机器学习一般用 conda
Ricardoo
2023-05-05 19:17:40 +08:00
@doraemon0711 #21 激活的环境会继承全局命令的,不用担心。它实际是填加新环境的 bin 目录到 PATH 中,拿{conda_install_home}/envs/{env_name}/bin 里的命令覆盖掉全局同名命令,非同名命令在各个 conda 环境里都可以使用
SenLief
2023-05-05 19:49:21 +08:00
我自己使用 miniconda 和 venv 的,conda 管理版本,venv 创建环境。
whitewinds
2023-05-05 20:28:02 +08:00
miniconda 管理虚拟环境
pip-compile 管理包
zengxs
2023-05-05 21:11:30 +08:00
需要预编译的依赖就用 conda
最求新 python 版本就 pyenv
cherbim
2023-05-05 21:31:19 +08:00
个人建议,无脑选择 conda 吧
wizardyhnr
2023-05-05 22:44:12 +08:00
不要用 conda 了,以前 pip 编译麻烦的时候 conda 的编译包很方便。但现在 pip 支持 wheel 很久了,用 pip 安装的 numpy/scipy/pytorch 都是编译好的,想想 pytorch 用的是 CUDA 的接口,pip 也可以一行命令安装了。conda 占内存大,安装包检查时间长,channel 里面一些小众包也没有,最后都是 conda/pip 混用。pyenv 也是可以创建多个环境的。
wizardyhnr
2023-05-05 22:46:09 +08:00
主流操作系统现在都支持安装不同版本的 Python 了,你用不同版本的 pyenv 就可以创建不同版本号的环境了。
amlee
2023-05-05 22:46:34 +08:00
@doraemon0711 有一个 pipx ,可以将 python 的命令行软件添加到全局 path ,又不影响 base 环境,很好用
qYs9wxnXG96c6z1t
2023-05-05 23:32:14 +08:00
没用过 conda ,一直用的 pipenv 管理环境
gumupaier
2023-05-06 11:27:04 +08:00
建议无脑选择 conda
Oilybear
2023-05-06 14:51:11 +08:00
1. conda env 、pyenv 都是环境管理,允许多个 python 环境,pip 和 conda install 是单个环境中的第三方库 /包管理。
2. 现在的优劣就像楼上#28 说的,剩下的就看你个人选择了。
3. 至于楼上那个#13 说的无需安装 python 的,什么叫无需安装?安装无非不就是在你磁盘留下相关文件,环境变量加上可执行文件的所在目录让 OS 能找得到可以用上? conda create -n fuxkurtalk python=3.x 不下载对应的 python ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX