搞了一个 Python 工具,在运行时自动检测、安装和引用需要的模块。类似 R 语言的 pacman 包。
pip install pkgman
from pkgman import include
include(["pandas", "numpy"])
一些朋友可能会觉得没用,但作为日常分析数据的人,如果突然要快速做一个数据分析,就可以在代码整洁的前提下,自动安装包。如果你有多台机器,这个也能降低你的环境同步负荷。
还不是很完善(一些限定和提示没弄),但我自己已经一直在用了。 欢迎🌟 & 意见 & PR
1
yukino 7 天前 1
|
2
Baboonowen OP @yukino 不是一个东西,我自己这个更多用在一遍一遍的数据分析场景而不是“运行脚本”。uv 也在用。
|
3
Lychee0 7 天前
支持从 其他 wheel 源 /git 仓库 安装吗
比如 `pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121` |
4
Baboonowen OP @Lychee0 可以考虑添加!这个属于还比较常用的
|
5
JeremyFeng 7 天前 1
|
6
frostming 7 天前
@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 7 天前 via iPhone
感觉挺好
|
8
bg7lgb 7 天前
这和用 requirements.txt 有啥区别?
|
9
Baboonowen OP @bg7lgb 写项目肯定这些配置文件最好。但如果你实在做数据分析,一会儿要加这个新方法,一会儿要加那个图包,没有东西比这种方式更快。这也是我的 motivation
|
10
fbichijing 6 天前
我自己感觉完全没有这种需求。
在安装一个 package 的时候,一般目标 package 的 setup.py 都已写了依赖和目标 package 的版本。另外,手动安装还能规避或者控制一些版本冲突问题。有些库比较激进,有些则比较保守。有些新版本的库大幅改变了函数和一些行为模式,有些库的展示效果也有差异。可能在某些特定时候并不是需要的。印象中以前使用到一个图片库,不适配某个依赖库的最新版本。只能使用 requirements.txt 才能比较方便测试,运行和迁移。 不过也正如你所说,“类似 R 语言的 pacman 包。”,可能是我没有用过你说的这个包,相对难以 get 到你所写的这个 package 所解决的问题点在哪里。 加油。不同的人喜欢不同的歌曲,这首歌曲也有它的听众。 |
11
tomczhen 6 天前 1
如果环境版本比较简单的话确实不错,我能想到的就是只有单一 anacodamini 的情况体验应该挺好。
不过工程化角度来说就不太合适了,叠加 Python 的依赖管理缺陷,容易出现“在我机器是正常的”这种问题😅 |
12
julyclyde 6 天前 1
你这是把声明式退化为执行式了
|
13
3085570450tt 6 天前
突然想到了名为 [pyforest · PyPI]( https://pypi.org/project/pyforest/) 的 python 包,这个包就是帮你自动导入的,不会进行安包。
pyforest 中用了一些 lazy_imports 的概念,或许可以做一些参考。 |
14
ruanimal 6 天前
lz 是完全不用 ide 吧,用这种动态导入,ide 里面估计全是 error 提示,代码补全也不准了
|
15
deplives 6 天前
那你代码补全还用不用了,你自己截图的 jupyter 里面都是到处飘红。而且你这个也是显式的 import ,无非从 import 换成了 include , 多此一举
|