@@ -45,9 +45,12 @@ func getVenvPath(basePath string) string {
4545func newVenv (dir string , logger * zap.SugaredLogger ) error {
4646 var out bytes.Buffer
4747 var errout bytes.Buffer
48- cmd := exec .Command ("bash" , "-c" , "python3.10 -m venv virtual_venv" )
48+ env := os .Environ ()
49+ logger .Debug (zap .Any ("env" , env ))
50+ cmd := exec .Command ("bash" , "-c" , "/usr/local/python3.10/bin/python3.10 -m venv virtual_venv" )
4951 cmd .Dir = dir
5052 cmd .Stdout = & out
53+ cmd .Stderr = & errout
5154 if err := cmd .Run (); err != nil {
5255 logger .Error ("new venv error :" , zap .String ("venv" , errout .String ()))
5356 return err
@@ -79,9 +82,26 @@ func newPipConf(basePath string, privateAddr string) error {
7982 }
8083 return nil
8184}
85+ func updatePip (dir string , logger * zap.SugaredLogger ) error {
86+ var out bytes.Buffer
87+ var errout bytes.Buffer
88+ cmd := exec .Command ("./python3.10" , "-m" , "pip" , "install" , "--upgrade" , "pip" )
89+ cmd .Stdout = & out
90+ cmd .Dir = dir
91+ if err := cmd .Run (); err != nil {
92+ logger .Error ("pip update error :" , zap .String ("pip" , errout .String ()))
93+ return err
94+ }
95+ logger .Debug ("pip update success " )
96+ return nil
97+ }
98+
8299func pipreqs (dir string , projectPath , savePath string , logger * zap.SugaredLogger ) error {
83100 savePath = filepath .Join (savePath , "requirements.txt" )
84- cmd := exec .Command ("./pipreqs" , projectPath , "--savepath" , savePath , "--encoding=utf-8" )
101+ logger .Debug (zap .String ("pipreqs Path" , dir ))
102+ logger .Debug (zap .String ("pipreqs projectPath" , projectPath ))
103+ logger .Debug (zap .String ("pipreqs savepath" , savePath ))
104+ cmd := exec .Command ("./pipreqs" , projectPath , "--savepath" , savePath , "--encoding=utf-8" , "--ignore=virtual_venv" )
85105 cmd .Dir = dir
86106 stdout , err := cmd .StdoutPipe ()
87107 if err != nil {
@@ -119,7 +139,7 @@ func pipreqs(dir string, projectPath, savePath string, logger *zap.SugaredLogger
119139func installpipreqs (dir string , logger * zap.SugaredLogger ) error {
120140 var out bytes.Buffer
121141 var stderr bytes.Buffer
122- cmd := exec .Command ("./pip3.10 " , "install" , "pipreqs" )
142+ cmd := exec .Command ("./pip " , "install" , "pipreqs" )
123143 cmd .Dir = dir
124144 cmd .Stdout = & out
125145 cmd .Stderr = & stderr
@@ -142,9 +162,9 @@ func installRequirements(dir string, textDir string, logger *zap.SugaredLogger)
142162 for k , v := range nvmp {
143163 var cmd * exec.Cmd
144164 if v != "" {
145- cmd = exec .Command ("./pip3.10 " , "install" , k + "==" + v )
165+ cmd = exec .Command ("./pip " , "install" , k + "==" + v )
146166 } else {
147- cmd = exec .Command ("./pip3.10 " , "install" , k )
167+ cmd = exec .Command ("./pip " , "install" , k )
148168 }
149169 cmd .Dir = dir
150170 cmd .Stdout = & out
@@ -158,7 +178,7 @@ func installRequirements(dir string, textDir string, logger *zap.SugaredLogger)
158178}
159179func installpipdeptree (dir string , logger * zap.SugaredLogger ) error {
160180 var out bytes.Buffer
161- cmd := exec .Command ("./pip3.10 " , "install" , "pipdeptree" )
181+ cmd := exec .Command ("./pip " , "install" , "pipdeptree" )
162182 cmd .Dir = dir
163183 cmd .Stdout = & out
164184 if err := cmd .Run (); err != nil {
@@ -190,7 +210,7 @@ func pipdeptree(dir string, logger *zap.SugaredLogger) ([]PipdeptreeStruct, erro
190210}
191211func updatePackage (dir string , logger * zap.SugaredLogger , k , v string ) {
192212 var out bytes.Buffer
193- cmd := exec .Command ("./pip3.10 " , "install" , k + "==" + v )
213+ cmd := exec .Command ("./pip " , "install" , k + "==" + v )
194214 cmd .Stdout = & out
195215 cmd .Dir = dir
196216 if err := cmd .Run (); err != nil {
@@ -241,6 +261,9 @@ func Run(ctx context.Context, dir string, logger *zap.SugaredLogger, nvMp map[st
241261 return nil , err
242262 }
243263 }
264+ if err := updatePip (venvPath , logger ); err != nil {
265+ return nil , err
266+ }
244267 if err := installpipreqs (venvPath , logger ); err != nil {
245268 return nil , err
246269 }
@@ -257,7 +280,6 @@ func Run(ctx context.Context, dir string, logger *zap.SugaredLogger, nvMp map[st
257280 data , err := readTextFile (requirementsPath , 64 * 1024 )
258281 if err != nil {
259282 logger .Warnf ("read requirement: %s %v" , requirementsPath , err )
260- return nil , err
261283 }
262284 // 对比原本的 requirements.txt 拿到原本包的版本
263285 newRequirements := parseRequirements (string (data ))
0 commit comments