使用模块,无法在项目

时间:2019-01-09 23:37:32

标签: go go-modules

go版本go1.11.4 darwin / amd64 GOPATH尚未设置,但先前已设置为$ HOME / Development / go

项目路径在$ HOME / code /

我能够使用命令成功(至少没有错误)安装go-sql-driver / mysql软件包

go get github.com/go-sql-driver/mysql@v1

当我在导入语句中包含对该包的引用

import(
_ "github.com/go-sql-driver/mysql")

在我的代码中,我看到了错误

  

无法导入github.com/go-sql-driver/mysql(找不到导入:   “ github.com/go-sql-driver/mysql”)

我已经在项目根目录中运行了go mod init,它创建了一个go.mod文件。当我运行go get命令时,我看到该软件包的文件中添加了require语句。但是,似乎该软件包的文件已安装在默认的$ HOME / go目录中(因为我未设置GOPATH)。

我应该做些不同的事情以便我的import语句可以找到新安装的软件包吗?使用模块不应该将所有软件包都安装在项目路径中的某个地方吗?

2 个答案:

答案 0 :(得分:1)

  

我应该做些不同的事情以便我的import语句可以找到新安装的软件包吗?

不。使用模块,根本不需要预先安装软件包。

  

使用模块不应该将所有软件包都安装在项目路径中吗?

不。它们以某种格式下载到某个地方并从该位置使用,但是它们没有像go get的旧GOPATH变体那样“安装”。

显示go env的输出以及go mod供应商生产的产品。

答案 1 :(得分:0)

我很确定自己做错了事。在仔细参考以下golang modules wiki中记录的步骤之后,我能够解决此问题。摘要是,无需通过“ go get”“安装”软件包。相反,只需使用“ go mod init”命令确保您的项目已初始化为使用模块,然后将包名称包含在import语句中。下一个构建事件将下拉包及其所有依赖项。