Golang Go语言中程序可以运行,但vscode语法检查提示找不到包

发布于 1周前 作者 eggper 来自 Go语言

代码块

package main
import(
	"github.com/gocolly/colly/v2"
	"fmt"
)
func main() {
	// create a new collector
	c := colly.NewCollector()
	fmt.Println(c)
}

运行结果

Requests made: 0 (0 responses) | Callbacks: OnRequest: 0, OnHTML: 0, OnResponse: 0, OnError: 0

这行"github.com/gocolly/colly/v2"飘红,提示:

error while importing github.com/gocolly/colly/v2: cannot find package "github.com/saintfish/chardet" in any of

能用,但是该怎么解决飘红的问题。有两个 gopath ,目前在第二个 gopath 目录下的 src 目录的下级目录中运行,有 go.mod,go.sum 。


Golang Go语言中程序可以运行,但vscode语法检查提示找不到包

更多关于Golang Go语言中程序可以运行,但vscode语法检查提示找不到包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

如果不是什么历史遗留原因的话,还是把项目从 gopath 里边移出来吧,go 都出到 1.19 了,大家可能已经告别 gopath 很久了。
你这个症状看起来,就是 gopls 并没有找到这个包,但是 go 命令能识别到。看起来是 gopls 去 gopath 里边找了,但是 go 命令能正确识别 go mod 安装的包。

极大概率可以通过移出来解决问题

更多关于Golang Go语言中程序可以运行,但vscode语法检查提示找不到包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


非常感谢,看来是有了 mod 之后不再需要 gopath 了,删除环境变量后正常了。

在使用 Visual Studio Code (VSCode) 进行 Go 语言开发时,遇到“找不到包”的语法检查提示,通常是由于以下几个原因导致的:

  1. GOPATH/GOMODULE 配置问题

    • 确保你的项目是在 GOPATH 下,或者你已经初始化了 Go Modules(通过 go mod init <module-name>)。VSCode 会根据这些配置来查找依赖包。
  2. 依赖未正确安装

    • 如果你的项目使用了 Go Modules,确保你已经运行了 go mod tidy 来整理依赖,并且 go.modgo.sum 文件是最新的。
    • 对于 GOPATH 模式,检查依赖包是否已经通过 go get 命令正确安装到 $GOPATH/pkg/mod$GOPATH/src 目录下。
  3. VSCode 插件配置

    • 确保安装了官方的 Go 插件(由 Google 提供),并且插件配置正确。插件通常会自动处理 GOPATH 和 GOMODULE 的设置。
    • 检查 VSCode 设置中是否有关于 Go 语言工具的自定义配置,这些配置可能会影响包的查找。
  4. 环境变量

    • 检查你的系统环境变量(如 GOPATH, GOROOT),确保它们正确设置并且 VSCode 可以访问到这些路径。
  5. 重启 VSCode

    • 有时候,简单地重启 VSCode 可以解决缓存或配置更新不及时导致的问题。

如果以上步骤都不能解决问题,尝试查看 VSCode 的输出面板(Output),选择 Go 插件相关的输出,看是否有更详细的错误信息。

回到顶部