PyEnv虚拟环境中pipreqs生成的numpy版本与本地环境不符如何解决
如何让pipreqs使用当前虚拟环境的包版本而非PyPI最新版
直接用pipreqs的--use-local参数就能解决,它会强制读取当前虚拟环境里已安装的包版本,不再去PyPI拉取最新版。
确保虚拟环境已激活,在项目目录下执行:
pipreqs . --use-local
生成的requirements.txt里就会和你当前环境的版本一致,比如numpy会显示numpy==1.26.4,而不是PyPI上的2.0.0。
补充说明
pipreqs默认会通过分析项目代码识别依赖,同时去PyPI校验最新版本,当本地安装版本和PyPI最新版不一致时,它会优先写入最新版。--use-local参数就是让它跳过PyPI的版本查询,完全以当前环境pip list里的已安装版本为准。
如果只是需要导出当前环境所有依赖(包括间接依赖),也可以用pip freeze > requirements.txt,但这个命令会把虚拟环境里所有包都列出来,不像pipreqs只提取项目代码实际用到的直接依赖,按需选择即可。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

