我能够完成设置和安装github.com/augustoroman/v8的整个过程--我手动构建了它的V8依赖项。当我运行go test时,我得到了以下结果:
PASS
ok github.com/augustoroman/v8 9.433s我在$GOPATH/src/github.com/augustoroman/v8上安装了这个包。到目前为止,一切似乎都在OS X上运行得很好。但是,当我尝试在我自己的单独项目中使用import "github.com/augustoroman/v8"导入时,我得到了一个抱怨。
回想起来,我意识到我启用了GO111MODULE=on。这促使我在v8文件夹的根目录下添加了一个包含以下内容的go.mod:
module github.com/augustoroman/v8
go 1.12当我尝试运行时,我得到了另一个错误:
go: finding github.com/augustoroman/v8 latest
go: downloading github.com/augustoroman/v8 v8.0.0-20190418063024-4b66934a28a7
main.go:3:8: unknown import path "github.com/augustoroman/v8": cannot find module providing package github.com/augustoroman/v8基本上,这个包看起来是可以正常工作的,但是,要么是GO111MODULE设置搞砸了它,要么是我把包安装在了错误的位置。Tbh在Go已经僵化的设置/结构之上,GO111MODULE设置是双重混乱的。
对如何调试这个问题有什么建议吗?
发布于 2019-05-19 20:26:32
设置GO111MODULE=on时,Go不使用GOPATH/src包,而是使用ref $GOPATH/pkg/mod**.** (,official blog)
因此,在$GOPATH/src/github.com/augustoroman/v8中安装更改过的包将不起作用。
作为一种解决方法,您可以在go.mod文件中使用replace需要修改后的包的位置使用指令。
例如,如果您在example.com/me/hello项目中使用github.com/augustoroman/v8,则在example.com/me/hello的go.mod文件中使用replace。
它可以是磁盘上绝对或相对位置中的任何一个,
module example.com/me/hello
require (
github.com/me/some-repo v0.0.0
)
replace (
github.com/augustoroman/v8 => /absolute/gopath/src/github.com/augustoroman/v8
)或者,更好的(更地道的!),你在github中的fork仓库。
module example.com/me/hello
require (
github.com/me/some-repo v0.0.0
)
replace (
github.com/augustoroman/v8 => github.com/me/v8
)https://stackoverflow.com/questions/56203017
复制相似问题