traefik / yaegi

Yaegi is Another Elegant Go Interpreter
https://pkg.go.dev/github.com/traefik/yaegi
Apache License 2.0
6.83k stars 341 forks source link

import package error #1125

Open jiufang171 opened 3 years ago

jiufang171 commented 3 years ago

The following program sample.go triggers a panic: go version 1.15.3 on windows

package main

import (
    "github.com/traefik/yaegi/interp"
    "github.com/traefik/yaegi/stdlib"
    "github.com/traefik/yaegi/stdlib/syscall"
    "github.com/traefik/yaegi/stdlib/unrestricted"
    "github.com/traefik/yaegi/stdlib/unsafe"
)

func main() {
    goPath := "C:\\Users\\aihao\\go"
    i := interp.New(interp.Options{GoPath: goPath})
    i.Use(stdlib.Symbols)
    i.Use(syscall.Symbols)
    i.Use(unsafe.Symbols)
    i.Use(unrestricted.Symbols)

    _, err := i.Eval(`import "github.com/chromedp/chromedp"`)
    if err != nil {
        panic(err)
    }
}

Expected result:

$ go run ./sample.go
// output

Got:


$ yaegi ./sample.go
// output
panic: 1:21: import "github.com/chromedp/chromedp" error: C:\Users\aihao\go\src\github.com\chromedp\chromedp\browser.go:13:2: import "github.com/mailru/easyjson" error: C:\Users\aihao\go\src\github.com\mailru\easyjson\hel
pers.go:12:2: import "github.com/mailru/easyjson/jwriter" error: C:\Users\aihao\go\src\github.com\mailru\easyjson\jwriter\writer.go:9:2: import "github.com/mailru/easyjson/buffer" error: C:\Users\aihao\go\src\github.com\m
ailru\easyjson\buffer\pool.go:175:12: undefined field or method: WriteTo

goroutine 1 [running]:
main.main()
        C:/Users/aihao/go/src/gointerprater/main.go:21 +0x137
mvertes commented 1 year ago

I can reproduce this issue without windows with the following sample.go (with a different output):

package main

import _ "github.com/chromedp/chromedp"

func main() {
    println("hello")
}
$ yaegi sample.go
run: ./main.go:3:8: import "github.com/chromedp/chromedp" error: /Users/marc/go/src/github.com/chromedp/chromedp/conn.go:9:2: import "github.com/gobwas/ws" error: /Users/marc/go/src/github.com/gobwas/ws/dialer.go:16:2: import "github.com/gobwas/httphead" error: /Users/marc/go/src/github.com/gobwas/httphead/cookie.go:125:3: undefined: nextPair