登录
首页 >  Golang >  Go问答

遇到问题:在启用 GO111MODULE=on 的情况下安装 augustoroman/v8

来源:stackoverflow

时间:2024-03-10 20:48:25 225浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《遇到问题:在启用 GO111MODULE=on 的情况下安装 augustoroman/v8 》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我能够完成设置和安装 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 设置弄乱了它,或者我将该软件包安装在了错误的位置。老实说,go111module 设置在 go 已经严格的设置/结构之上更加令人困惑。

关于如何调试此问题有什么建议吗?


解决方案


当设置 go111module=on 时,go 不使用 gopath/src 包,而是它使用 $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/hellogo.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
)

今天关于《遇到问题:在启用 GO111MODULE=on 的情况下安装 augustoroman/v8 》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>