有没有办法在 Go 代码中获取 Go 模块的完整路径 [关闭]
Posted
技术标签:
【中文标题】有没有办法在 Go 代码中获取 Go 模块的完整路径 [关闭]【英文标题】:Is there a way to get Go module's full path inside Go code [closed] 【发布时间】:2020-02-17 00:56:34 【问题描述】:有没有办法在我的项目正在使用的外部库下获取模块的完整路径?
【问题讨论】:
你能指出这个需求的用例吗? 可能不是,但你是什么意思?您认为“模块的完整路径”是什么样的? 我导入了一个需要在运行代码时编译的 pkg。 @DevendraMukharaiya 这是完整路径“~/workspace/pkg/mod/github.com/spacemeshos/go-spacemesh-mock@v0.0.0-20191020144922-ca780c919bc3”只是我电脑上的另一个文件夹。 你为什么要这个?这看起来很像一个 XY 问题。 【参考方案1】:Go 是一种编译语言,大多数外部库(模块)将静态链接到同一个二进制文件中。这意味着您使用的所有 Go 库都在同一个二进制文件中,而不是在您的 PC 中。
如果您使用go mod
,this post 将帮助您了解模块在构建期间的位置。
如果您单独使用 GOPATH,则库将下载到您的 $GOPATH/src
,后跟用于导入的地址。
如果这不是您要查找的内容,分析您使用的库的一种方法是检查您的 go.mod
文件。
【讨论】:
感谢您的快速回复,我正在使用 go mod,并且确实在笔记本电脑上看到了代码。我想我必须从 mod 文件中读取,虽然我不想这样做,它不那么优雅。【参考方案2】:有没有办法在 go 代码中获取 go 模块的完整路径
没有。
【讨论】:
以上是关于有没有办法在 Go 代码中获取 Go 模块的完整路径 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章