登录
首页 >  Golang >  Go问答

无法在项目中引用新安装的包,可能与模块有关

来源:stackoverflow

时间:2024-03-09 11:39:27 361浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《无法在项目中引用新安装的包,可能与模块有关》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

go版本go1.11.4 darwin/amd64 gopath 已取消设置,但之前设置为 $home/development/go

项目路径在$home/code/下

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

go 获取 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)。

我应该采取不同的做法,以便我的导入语句可以找到新安装的包吗?使用模块不应该将所有包安装在项目路径中的某个位置吗?


解决方案


我应该采取不同的做法,以便我的导入语句可以找到新安装的包吗?

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

使用模块不应该将所有包安装在项目路径中的某个位置吗?

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

显示 go env 的输出以及 go mod 供应商生成的内容。

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

到这里,我们也就讲完了《无法在项目中引用新安装的包,可能与模块有关》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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