问题在圈河Golang导入包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题在圈河Golang导入包相关的知识,希望对你有一定的参考价值。

我正在使用Circle CI来测试我的项目。该项目是一个简单的Go应用程序,由几个包和一个main.go文件组成。在我的项目中引用包时,我只需在代码中将它们作为“projectName / packageName”导入。这在本地工作正常,但是,当我推送到git并且它在Circle CI上构建时,我得到以下错误。

package crypto-compare-go / handlers:无法识别的导入路径“crypto-compare-go / handlers”(导入路径不以hostname开头)

我通过将github.com/myGitUsername/projectName预先添加到我的本地包导入来修复此问题,这意味着当我在本地开发时如果我更改了我的项目中的一个包,我必须推送到git,然后拉到能够使用它们即使它们都在同一个父项目文件夹下。这似乎是一个缓慢,非常低效的过程。

以前有没有人对Circle CI有这个问题?

答案

我通过将github.com/myGitUsername/projectName预先添加到我的本地包导入来修复此问题,这意味着当我在本地开发时如果我更改了我的项目中的一个包,我必须推送到git,然后拉到能够使用它们即使它们都在同一个父项目文件夹下。这似乎是一个缓慢,非常低效的过程。

不。你弄错了。你的go将使用当地的$GOPATH/src/github.com/myGitUsername/projectName目录进行编译。只有在运行go get -u <package path>时才能访问github.com。它记录在How to Write Go Code中。

请注意,在构建代码之前,无需将代码发布到远程存储库。组织代码只是一个好习惯,好像有一天你会发布它一样。实际上,您可以选择任意路径名称,只要它对标准库和更大的Go生态系统是唯一的。

以上是关于问题在圈河Golang导入包的主要内容,如果未能解决你的问题,请参考以下文章

Golang- import 导入包的语法(转)

go导入github包后无法导入本地包

Golang- import 导入包的语法

golang 遇到导入自定义包导入不进去的问题解决

从另一个包和文件 golang 导入结构

golang goroutine例子[golang并发代码片段]