pdm 还是 dev container?

2024-02-05 19:04:10 +08:00
 stimw

之前用到 python 的地方基本就是数据分析、深度学习,这块标准答案应该就是 conda ,我一直以来也是用 miniconda 来管理环境。

现在要写 fastapi ,conda 用起来就有点痛苦了。当然 conda 也可以导出evironment.yml,但是这玩意似乎也只能用来 create 新环境,不能像其他包管理器一样根据包版本差异直接 install 。

研究了一下现在比较好用的就是 pdm ,可以创建新的 venv (不太想搞这么多 venv...),也可以复用 conda 的 venv ,但是看了半天复用的话也不知道会不会影响 conda 的环境里的包。

还有一个选择就是 vscode 的 dev container ,直接容器内开发可能是一个比较好的选择,但是没尝试过。

2767 次点击
所在节点    Python
29 条回复
FlytoSirius
2024-02-05 19:14:00 +08:00
上 Dev Container 可能是你的最终方案吧
行业里也都是这么做的.

否则一个操作系统环境 终归容易出问题
Yuhyeong
2024-02-05 19:21:43 +08:00
哥们讲讲 fastapi 在 conda 里怎么个情况,我自己用着没啥问题啊
youngce
2024-02-05 19:29:48 +08:00
我们这边无论是开发的时候用什么管理( conda 、venv 、poetry 、pyenv 、pdm...),最终打 dockerfile 必须提供 requirement.txt🤣 其实对于 pycharm 用户 conda 、venv 、poetry 的支持都很好了
stimw
2024-02-05 19:32:06 +08:00
@Yuhyeong 我的,我刚发现可以 conda env update --file environment.yml 。但是 conda 也有点问题,很多包在 conda 里没有,虽然也可以用 conda 里的 pip 装,但是来回倒腾总是会遇到一些莫名其妙的问题,要么就是 conda 卡在检查环境了。
lxdlam
2024-02-05 21:10:20 +08:00
目前主用 rye ,只能说非常舒服
stimw
2024-02-05 23:51:55 +08:00
@youngce 本地用包管理的话,如果一个项目对应一个 venv ,那项目一多切得过来环境都很麻烦。。。
zhusimaji
2024-02-05 23:53:41 +08:00
开发 vscode +wsl2+miniconda ,线上 docker 指定 pip 安装,少的话直接写在 docker file 里,多的话还是放 requirement.txt ,目前用的很稳
lidashuang
2024-02-06 02:14:20 +08:00
我用 pdm
dayeye2006199
2024-02-06 08:06:08 +08:00
我选择老掉牙的 venv 和 pip
RockShake
2024-02-06 08:15:01 +08:00
如果只是包管理,poetry pipenv pdm 都没什么问题,IDE 对虚拟环境已经非常完善,只有之前用 pdm 的时候需要自己配置一下路径。
dup2graph
2024-02-06 08:51:59 +08:00
感觉开发 fastapi ,用 dev container 有点重?
感觉 pyenv, venv, pdm 都没啥问题
lostsquirrelX
2024-02-06 11:26:30 +08:00
不想太多 venv 就不给你推荐 pipenv 了
iorilu
2024-02-06 15:00:52 +08:00
切勿在这些无聊的事情上花很多时间

就用最熟悉的就行

太多选择也是 python 的问题
shimada666
2024-02-06 15:29:39 +08:00
我选择老掉牙的 venv 和 pip + 1
noparking188
2024-02-06 15:55:04 +08:00
virtualenv + pip + pycharm
stimw
2024-02-06 18:12:12 +08:00
@iorilu 不是无聊。。是 conda 在这种事上真的难用。。
比如我刚在 linux 上 `conda env export` 出 environment.yml ,回 mac 上`conda env update`就报错了。。

https://smms.app/image/klDKLFvo5PSdMaW
stimw
2024-02-06 18:15:20 +08:00
@zhusimaji 这种问题有遇到吗?刚在 linux 上 `conda env export` 出 environment.yml ,回 mac 上`mamba env update`就报错。channel 都是 conda-forge 。我是真受不了了。。

https://smms.app/image/klDKLFvo5PSdMaW
iorilu
2024-02-06 18:38:06 +08:00
@stimw 主要是目前 python 圈公认这事没有统一, 公认的最佳方案

每个人都不一样

那自然是你熟悉那个就那个

我个人仍然就用最简单的 venv + requirement , 至于多装几个包, 我也无所谓

或者手动维护两个, 一个 dev 的, 一个 production 的
zhusimaji
2024-02-06 23:05:32 +08:00
@stimw 我现在在 win 下不捣鼓环境呢,都丢到 wsl 里面了,你说的问题没遇到过
zhusimaji
2024-02-06 23:07:20 +08:00
@stimw 看到 gcc 猜测跟 os 有关?你试试开个 docker 在 mac 下试试

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

https://tanronggui.xyz/t/1014479

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

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

© 2021 V2EX