pdm 还是 dev container?

94 天前
 stimw

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

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

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

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

2140 次点击
所在节点    Python
29 条回复
FlytoSirius
94 天前
上 Dev Container 可能是你的最终方案吧
行业里也都是这么做的.

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

就用最熟悉的就行

太多选择也是 python 的问题
shimada666
93 天前
我选择老掉牙的 venv 和 pip + 1
noparking188
93 天前
virtualenv + pip + pycharm
stimw
93 天前
@iorilu 不是无聊。。是 conda 在这种事上真的难用。。
比如我刚在 linux 上 `conda env export` 出 environment.yml ,回 mac 上`conda env update`就报错了。。

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

https://smms.app/image/klDKLFvo5PSdMaW
iorilu
93 天前
@stimw 主要是目前 python 圈公认这事没有统一, 公认的最佳方案

每个人都不一样

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

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

或者手动维护两个, 一个 dev 的, 一个 production 的
zhusimaji
92 天前
@stimw 我现在在 win 下不捣鼓环境呢,都丢到 wsl 里面了,你说的问题没遇到过
zhusimaji
92 天前
@stimw 看到 gcc 猜测跟 os 有关?你试试开个 docker 在 mac 下试试

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

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

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

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

© 2021 V2EX