
搞了一个 Python 工具,在运行时自动检测、安装和引用需要的模块。类似 R 语言的 pacman 包。
pip install pkgman from pkgman import include include(["pandas", "numpy"]) 一些朋友可能会觉得没用,但作为日常分析数据的人,如果突然要快速做一个数据分析,就可以在代码整洁的前提下,自动安装包。如果你有多台机器,这个也能降低你的环境同步负荷。

还不是很完善(一些限定和提示没弄),但我自己已经一直在用了。 欢迎 & 意见 & PR
1 yukino 2024-11-28 02:55:08 +08:00 |
2 Baboonowen OP @yukino 不是一个东西,我自己这个更多用在一遍一遍的数据分析场景而不是“运行脚本”。uv 也在用。 |
4 Baboonowen OP @Lychee0 可以考虑添加!这个属于还比较常用的 |
5 JeremyFeng 2024-11-28 09:09:40 +08:00 |
6 frostming 2024-11-28 09:57:21 +08:00 @Baboonowen 就是一样的,这还是标准化的,PDM 也支持 修正一下上面老哥的 URL: https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies PDM 的: https://pdm-project.org/en/latest/usage/scripts/#single-file-scripts |
7 lao66 2024-11-28 09:57:29 +08:00 via iPhone 感觉挺好 |
8 bg7lgb 2024-11-28 10:20:15 +08:00 这和用 requirements.txt 有啥区别? |
9 Baboonowen OP @bg7lgb 写项目肯定这些配置文件最好。但如果你实在做数据分析,一会儿要加这个新方法,一会儿要加那个图包,没有东西比这种方式更快。这也是我的 motivation |
10 fbichijing 2024-11-28 15:42:00 +08:00 我自己感觉完全没有这种需求。 在安装一个 package 的时候,一般目标 package 的 setup.py 都已写了依赖和目标 package 的版本。另外,手动安装还能规避或者控制一些版本冲突问题。有些库比较激进,有些则比较保守。有些新版本的库大幅改变了函数和一些行为模式,有些库的展示效果也有差异。可能在某些特定时候并不是需要的。印象中以前使用到一个图片库,不适配某个依赖库的最新版本。只能使用 requirements.txt 才能比较方便测试,运行和迁移。 不过也正如你所说,“类似 R 语言的 pacman 包。”,可能是我没有用过你说的这个包,相对难以 get 到你所写的这个 package 所解决的问题点在哪里。 加油。不同的人喜欢不同的歌曲,这首歌曲也有它的听众。 |
11 tomczhen 2024-11-28 15:50:06 +08:00 如果环境版本比较简单的话确实不错,我能想到的就是只有单一 anacodamini 的情况体验应该挺好。 不过工程化角度来说就不太合适了,叠加 Python 的依赖管理缺陷,容易出现“在我机器是正常的”这种问题 |
12 julyclyde 2024-11-28 16:03:35 +08:00 你这是把声明式退化为执行式了 |
13 UB 2024-11-29 00:33:35 +08:00 突然想到了名为 [pyforest PyPI]( https://pypi.org/project/pyforest/) 的 python 包,这个包就是帮你自动导入的,不会进行安包。 pyforest 中用了一些 lazy_imports 的概念,或许可以做一些参考。 |
14 ruanimal 2024-11-29 09:30:11 +08:00 lz 是完全不用 ide 吧,用这种动态导入,ide 里面估计全是 error 提示,代码补全也不准了 |
15 deplives 2024-11-29 09:54:45 +08:00 那你代码补全还用不用了,你自己截图的 jupyter 里面都是到处飘红。而且你这个也是显式的 import ,无非从 import 换成了 include , 多此一举 |