当前位置: 首页 > 面试题库 >

Go:运行从GitHub存储库派生的Go项目时,“不允许使用内部软件包”

董建茗
2023-03-14
问题内容

我已经习惯了Go,并试图了解它的工作原理。

所以我试图从我的存储库zoonoo / go-ethereum运行测试代码,该代码是从原始存储库ethereum / go-ethereum派生的。

在目录go test .下运行时eth,出现以下错误:

eth/api.go:37:2: use of internal package not allowed

eth / api.go的第37行如下: "github.com/ethereum/go-ethereum/internal/ethapi"

这是否意味着在派生Go存储库时,必须更改代码中所有依赖项的路径才能运行代码?
Go软件包系统是否完全支持存储库派生?


问题答案:

如另一个Go项目所示:

克隆fork

如果您希望使用InfluxDB的fork,例如您自己的fork,则仍必须遵循上面的目录结构。但是,与其克隆主仓库,不如克隆你的fork。请按照以下步骤使用叉子:

export GOPATH=$HOME/gocodez
mkdir -p $GOPATH/src/github.com/influxdb
cd $GOPATH/src/github.com/influxdb
git clone git@github.com:<username>/influxdb

必须保留目录结构$ GOPATH / src / github.com / influxdb,以便Go导入正常工作。

用您的项目替换InfluxDB名称/ URL,同样的想法也适用。

在您的情况下,只有GitHub fork可以将您的贡献推回去,并从中发出Pull请求。由于软件包与您的GitHub的回购URL不匹配,
因此它不会作为go get工作来源。



 类似资料:
  • MOAC Go API was built for MOAC chain. It was developed from MOAC RPC API, which can be used to develop Ðapp on MOAC chain. It supports both VNODE and SCS JSON RPC API methods in MOAC network. Chain3Go

  • win11 go run .会生成exe文件到缓存目录,每次都弹出防火墙很烦,能不能指定生成目录? 谢谢

  • 问题内容: 我正在使用go 1.5.3。我跑了 我收到此错误消息: 我该如何解决? 问题答案: 从《枸杞》第13期中,正确的命令是: 该页面具有meta指令: 这样,go不会考虑(例如参见)尝试导入“第三方”的内部软件包。 此问题说明了错误的内部导入情况: 您不允许导入第三方存储库的内部包(或其子包)。

  • 现在我们知道如何使用 Go 以及它的标准库了,但是 Go 的生态要比这大的多。当着手自己的 Go 项目时,最好先查找下是否有些存在的第三方的包或者项目能不能使用。大多数可以通过 go install 来进行安装。 Go Walker 支持根据包名在海量数据中查询。 目前已经有许多非常好的外部库,如: MySQL(GoMySQL), PostgreSQL(go-pgsql), MongoDB (mg

  • go-github 是 Google 对 Github 的开放 API 进行 Go 语言封装的一个项目。 示例代码: import "github.com/google/go-github/github"client := github.NewClient(nil)orgs, _, err := client.Organizations.List("willnorris", nil)opt := 

  • 为什么会这样?最后,还有其他类似的功能我应该知道是不允许的。