Skip to content

Commit f317940

Browse files
fix: python tree
1 parent ca8a315 commit f317940

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

module/python/python.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func (i Inspector) InspectProject(ctx context.Context) error {
9393
model.UseInspectionTask(ctx).AddModule(m)
9494
return err
9595
} else {
96-
m.Dependencies = deps
96+
m.Dependencies = append(m.Dependencies, deps...)
9797
}
9898
}
9999
model.UseInspectionTask(ctx).AddModule(m)

module/python/venv.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,12 @@ func getVenvPath(basePath string) string {
4545
func 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+
8299
func 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
119139
func 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
}
159179
func 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
}
191211
func 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

Comments
 (0)