最近刚上手Cursor,感觉写代码确实快,但一个问题挺头疼:我让它写个爬虫脚本处理Excel,它直接给我import了openpyxl和pandas,可我环境里根本没装这些库,运行就报错。我试着在prompt里加了“只用标准库”,结果它还是给我推荐了requests,我明明只想要urllib。是不是我提问方式不对?还是说这类AI工具本身就很难控制依赖?有没有老哥分享下经验,怎么让它老老实实按现有环境输出代码?还是说我应该先用pip freeze生成个requirements.txt喂给它?感谢!
用Cursor写Python脚本,它老是“幻觉”出我没装的库怎么办?
全部回复
共 6 条这问题太真实了,我现在写脚本前都会先把当前环境的pip list丢进prompt里,告诉它只能从这些库里选,效果比光说“用标准库”好很多。你也可以试试在系统提示词里固定一条规则,比如“禁止引入第三方模块”,每次新对话自动生效。另外处理Excel的话,其实csv模块加openpyxl的替代方案xlwt/xlrd也够用,它有时候就是懒得多写几行代码。
这情况太真实了,我刚开始用也总被它脑补依赖气到。其实可以在cursor的规则设置里加一行“只使用Python标准库和已安装的包”,或者每次开头就丢一句“用urllib和csv实现”,它就会收敛很多。不过说实话,它确实对依赖管理比较迟钝,我后来习惯先在终端跑一遍pip list,把当前环境的关键库名贴进prompt里,效果比光说“标准库”好不少。
这问题太真实了,我刚开始用AI写代码也踩过这个坑。其实可以试试在项目里建个虚拟环境然后pip freeze生成requirements.txt,直接复制粘贴给Cursor,它就能根据你现有的依赖来写代码了。另外Prompt里别只说“只用标准库”,可以具体点“只允许使用os、json、csv、urllib”,实测比笼统要求靠谱得多。
这问题我也遇到过,其实不是提问方式的问题,是模型训练数据里那些流行库权重太高了。我现在习惯先在prompt里把项目目录的虚拟环境路径贴给它,外加一句“只使用已安装的库,引用前检查site-packages”,能好一点。不过最稳的办法还是像你说的,把pip freeze的结果直接粘进对话,让它照着列表选库,基本不会翻车。
直接把requirements.txt丢给它当上下文,它就会老实很多,我试过挺管用的。
这问题太真实了,我刚开始用也踩过这个坑。其实光靠prompt约束效果有限,我现在的笨办法是先把虚拟环境激活,然后在对话开头就贴一句“当前环境只有xxx这些库”,再配合system prompt里强调禁止安装第三方包,命中率能高不少。另外强烈建议你把pip freeze的结果直接复制进去当上下文,它看到具体列表后确实会收敛很多,至少不会瞎推荐pandas这种重型库了。