go lang 初学者的坑:如何import 导入相对路径文件的包package?

问题描述:

文件路径如下图:

56e85e0b7a17b36328676f368e050b64

如何在main.go(package是main) 中使用demo目录下面的demo.go(package是demo)中定义的函数?

解决方法:

1、在终端运行:go mod init aiwen-go-gin,如下图

ad34f72fe3d0a445a82241826a7d1993

得到结果:在目录下面生成go.mod,如下图:

12ec3f0f18228a2fc04a6fc125eb28f6

运行结果会有些提示,暂时搞不懂,如下图:

dc955fef571efed8d89fee54e0c50a84

此时,我的项目文件夹\goProjects必须放在GOPATH目录下,我的GOPATH是: C:\Users\Administrator\go,

3、后来发现把goProjects搬到D盘目录下,也能正常运行。发现就是go mod的问题。

参考资料:

使用GO MOD

在Golang 1.11版本之后,GO MOD成为Golang的官方依赖管理工具。使用GO MOD可以方便地使用多个GOPATH,而无需手动指定路径。

使用GO MOD的步骤如下:

  • 在你的GOPATH下创建一个新的项目目录,并在该目录中使用GO MOD进行初始化。

1

2

cd /path/to/project/dir

go mod init project_name

在初始化后会生成一个go.mod文件,该文件记录了该项目的依赖项及版本信息。

  • 将需要的包加入对应的go.mod文件中。

1

go get github.com/gorilla/mux

使用go get安装包时,将自动添加到go.mod文件中,此时,$GOPATH/pkg/mod/github.com/gorilla/[email protected]目录下就有了下载的源代码。

  • 构建项目

1

go build

GO MOD将自主查找依赖项并生成对应的go.sum文件记录版本信息等。

以上就是使用多个GOPATH的两种方法。可以根据自身项目需求选择适合的方法。

 

在IDE中修改GOPATH

对于使用Goland或其他IDE开发Golang项目的用户,也可以在IDE中修改GOPATH。以Goland为例,在File->Settings->Go->GOPATH中进行配置即可。