Python 能不能像 node 一样管理包

2022-08-03 10:44:05 +08:00
 yuhangch

拉下来仓库,装上依赖能跑,删除项目依赖也就没了

conda 这种需要手动创建虚拟环境,没办法跟某个项目同步创建、删除

8047 次点击
所在节点    Python
56 条回复
ranleng
2022-08-03 10:48:20 +08:00
pip install -r requirement.txt
Geekgogo
2022-08-03 10:50:02 +08:00
virtualenv 不就多一个手动创建虚拟环境的步骤嘛?项目依赖都在同一个目录下的 venv 中
ipwx
2022-08-03 10:51:38 +08:00
virtualenv
poetry
1543544726zy
2022-08-03 10:55:02 +08:00
why not all in docker . dev and deploy .
nodewee
2022-08-03 10:58:01 +08:00
可以试试 pdm
gkiwi
2022-08-03 10:59:05 +08:00
Trim21
2022-08-03 11:34:22 +08:00
相关的 pep 还是 draft
dcsuibian
2022-08-03 11:34:51 +08:00
这是我感觉 python 拉跨的地方之一,npm 再差至少一开始也有 package.json
python 要装就全局装,没有项目级依赖,pyenv 和 conda 也只是虚拟了一个全局环境(没用过 pdm ),感觉更像 nvm

不过从另一方面来说应该又与 python 的应用场景有关,因为 python 与 C/C++深度结合
我个人 pyenv 用得少,基本都用 conda 。
像 geos 、torch 这种,其实不光是 python 的版本要管理。
SteinsGate
2022-08-03 11:46:38 +08:00
pyenv + pyenv virtualenv + poetry
renmu123
2022-08-03 11:53:45 +08:00
poetry
whusnoopy
2022-08-03 12:00:11 +08:00
@dcsuibian #8

Python 有 requirements.txt 啊,pyenv 和 conda 更像 nvm ,但 virtualenv 是跟 npm 一样在虚拟空间里的,只是 npm 如果不加 -g 默认是本地,加了 -g 才全局,而 Python 是默认全局,如果激活了 virtualenv 就是本地
oncethink
2022-08-03 12:32:33 +08:00
PEP 582 就是在解决这个问题
ratazzi
2022-08-03 12:46:31 +08:00
请看 conda 文档,不要乱讲
shyling
2022-08-03 12:57:46 +08:00
@whusnoopy 但是 requirements.txt 是装全局的。。venv 也是伪装版的全局。
ChrisFreeMan
2022-08-03 12:58:28 +08:00
@Trim21 有段时间一直盯着这个 pep ,我觉得挺好的一个特性,貌似大家都不怎么上心。
anxn
2022-08-03 13:09:03 +08:00
为啥还有人想用 node 的灾难依赖
Vegetable
2022-08-03 13:10:47 +08:00
poetry 和 pipenv 之类的都一样啊,搜一搜很多的
fgwmlhdkkkw
2022-08-03 13:17:13 +08:00
pip install -t ./deps
wxf666
2022-08-03 13:24:57 +08:00
@shyling 『伪装版的全局』是啥意思?我在一个 venv 里安装包,会有文件装到这个目录外面?
ysc3839
2022-08-03 13:26:07 +08:00
@dcsuibian #8 Node.js 本身不会管 package.json 吧?只是默认会从 node_modules 文件夹下加载 module 。
那 Python 的问题就变成了“默认不会去本地的某个文件夹下加载 module”。对于这个问题,Python 至今也没有改变。替代方案有手动修改 sys.path ,或者使用 venv 。

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

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

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

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

© 2021 V2EX