gopherdata / gophernotes

The Go kernel for Jupyter notebooks and nteract.
MIT License
3.86k stars 263 forks source link

Cannot import third party packages #241

Open encryptblockr opened 2 years ago

encryptblockr commented 2 years ago

I am trying to use a third party package within my gophernote and got the following error

repl.go:3:2: error loading package "gorm.io/driver/postgres" metadata, maybe you need to download (go get), compile (go build) and install (go install) it? can't find import: "gorm.io/driver/postgres"

now i docker exec -it gophernotes sh and then ran

/ # go get gorm.io/driver/postgres
# github.com/jackc/pgx/internal/sanitize
go/src/github.com/jackc/pgx/internal/sanitize/sanitize.go:85:15: undefined: strings.ReplaceAll
# gorm.io/gorm/utils
go/src/gorm.io/gorm/utils/utils.go:49:30: reflect.ValueOf(val).IsZero undefined (type reflect.Value has no field or method IsZero)
# github.com/jackc/pgconn
go/src/github.com/jackc/pgconn/errors.go:25:9: undefined: errors.As
go/src/github.com/jackc/pgconn/pgconn.go:221:6: undefined: errors.As
go/src/github.com/jackc/pgconn/pgconn.go:462:6: undefined: errors.As
go/src/github.com/jackc/pgconn/pgconn.go:472:15: undefined: errors.As
go/src/github.com/jackc/pgconn/pgconn.go:490:15: undefined: errors.As
# github.com/jackc/pgtype
go/src/github.com/jackc/pgtype/aclitem_array.go:89:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/bool_array.go:92:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/bpchar_array.go:92:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/bytea_array.go:73:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/cidr_array.go:112:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/date_array.go:93:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/enum_array.go:89:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/float4_array.go:92:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/float8_array.go:92:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/hstore_array.go:73:49: reflectedValue.IsZero undefined (type reflect.Value has no field or method IsZero)
go/src/github.com/jackc/pgtype/hstore_array.go:73:49: too many errors

how do we install third party packages to use in gophernote?

why is there no doc in README about how to do this?!?

encryptblockr commented 2 years ago

https://github.com/gopherdata/gophernotes/issues/147

cosmos72 commented 2 years ago

Importing third-party packages is only supported on Linux and Mac OS X - on them, you just need to execute

import "some/package/path"

as described in gomacro README.md (the interpreter used internally by gophernotes).

There is a way to import them also on Windows, but it's more complicated and it involves recompiling gophernotes (you need to adapt the procedure described at https://github.com/cosmos72/gomacro#other-systems).

If you are using Docker: I am not expert with Docker and cannot help with it - maybe others can (@sbinet ?)

encryptblockr commented 2 years ago

@cosmos72 @sbinet

Standard packages work fine but does not with third party packages

I have this running inside docker using the latest official docker image gopherdata/gophernotes

Any workaround? am sure there are others using docker that work with codes that require third party packages Really sad not to be to download packages as it makes gophernotes almost useless now if one cant download packages

encryptblockr commented 2 years ago

@cosmos72 @sbinet

Seems gophernotes on docker can NOT make any external call period Any way to fix this or get around this? Without being able to make any external calls, this is almost useless It is like same thing as golang plyabook now, not being able to make any external calls

sbinet commented 2 years ago

what do you mean? ie: what did you try? and what was the outcome?

cosmos72 commented 2 years ago

The error in the first post above suggests that gophernotes inside Docker is compiled without Go modules support.

If I understand correctly, @sbinet has updated Docker installation procedure to use a recent version of Go toolchain, which should also solve this issue.

Can you try again (following Docker installation procedure, not downloading the pre-built Docker image which quite likely still uses the old Go toolchain) ?

In case you are not using Docker, or if you want to try the plain Windows version of gophernotes, the procedure to import third-party packages from gophernotes on Windows is explained in issue 243

ChristianKniep commented 2 years ago

Any update on this one. Banging my head against the same issue... :)

ChristianKniep commented 2 years ago

Even though... When building my own image with the Dockerfile in the repo it works. The DockerHub image is 4 years old.