@@ -320,11 +320,11 @@ func Run(ctx context.Context, dir string, logger *zap.SugaredLogger, nvMp map[st
320320 logger .Warnf ("read requirement: %s %v" , requirementsPath , err )
321321 }
322322 // 对比原本的 requirements.txt 拿到原本包的版本
323- newRequirements := parseRequirements (string (data ))
323+ oldRequirements := parseRequirements (string (data ))
324324 for k , v := range nvMp {
325- if newV , ok := newRequirements [k ]; ok && newV != v {
325+ if newV , ok := oldRequirements [k ]; ok && newV != v {
326326 updatePackage (venvPath , logger , k , v )
327- newRequirements [k ] = v
327+ oldRequirements [k ] = v
328328 }
329329 }
330330 result , err := pipdeptree (venvPath , logger )
@@ -337,7 +337,14 @@ func Run(ctx context.Context, dir string, logger *zap.SugaredLogger, nvMp map[st
337337 }
338338 }
339339 // 对于没有pip install成功的依赖 只加入pipreqs中列出的直接依赖
340- directDependenceSurvival (& mod , newRequirements )
340+ directDependenceSurvival (& mod , oldRequirements )
341+ // 对于pipreqs生成的requirements.txt 中未列出的直接依赖加入到依赖树中直接依赖一层
342+ data , err = readTextFile (venvRequirementsPath , 64 * 1024 )
343+ if err != nil {
344+ logger .Warnf ("read requirement: %s %v" , requirementsPath , err )
345+ }
346+ venvRequirements := parseRequirements (string (data ))
347+ directDependenceSurvival (& mod , venvRequirements )
341348 defer delVenv (venvDir , logger )
342349 return mod , err
343350}
0 commit comments