【问题标题】:List dependencies for module, not package列出模块的依赖项,而不是包
【发布时间】:2026-02-14 01:45:01
【问题描述】:

如果我有这个文件:

package main
import "github.com/dinedal/textql/storage"

我可以使用以下之一列出依赖项:

go list -deps
go mod graph

但是,如果我有这个文件:

package main
import "github.com/dinedal/textql"

未列出所有依赖项。例如查看mod filerequire 下的软件包现在都没有列出。最后我尝试了这个 有趣的结果:

PS C:\> go list -deps github.com/dinedal/textql
go: finding module for package github.com/dinedal/textql
module github.com/dinedal/textql@latest found
(v0.0.0-20200608170856-250cf763f52c), but does not contain package
github.com/dinedal/textql

【问题讨论】:

  • 正如错误所示:该模块不包含名为 github.com/dinedal/textql 的包。如果你look at it,原因很明显:*目录中没有.go 文件。
  • @StevenPenny:试试go list -deps github.com/dinedal/textql/... 这不是“模块”,确切地说。它是“为一条路径及其子项”。但在大多数常见情况下,它们实际上是相同的。
  • 必须先安装这些软件包。即go get github.com/dinedal/textql/whatevergo list 不会自动下载任何东西。
  • 我不介意发布答案,但首先需要有一个信息回答的问题:) 你想澄清你的问题吗?现在有点 XY 问题。
  • 您的答案看起来不错。无需添加我自己的。

标签: go module package dependencies


【解决方案1】:

基于 cmets,我能够获得一个模块的依赖项列表 像这样:

go mod init deps
go get github.com/dinedal/textql
go list -deps github.com/dinedal/textql/...

此命令也可用于测试,因为它会清除模块缓存:

go clean -modcache

【讨论】: