当前位置: 首页 > 面试题库 >

Mac OS X上的GO(Golang)供应商实验失败

卫高明
2023-03-14
问题内容

在OS X上使用Go 1.6.2进行Go供应商实验时遇到了一些麻烦。

这是我的目录结构:

/project
    /application
        main.go
        other.go
        /vendor
            /github.com
                /vendor_name
                    /package_name

我的GOPATH设置为/Users/me/project/application
但是,当我尝试运行任何go工具(例如,构建工具)时,似乎都在查找application/src而不是application/vendor,得到了很多这样的东西:

main.go:15:2: cannot find package "github.com/facebookgo/grace/gracehttp" in any of:
    /usr/local/Cellar/go/1.6.2/libexec/src/github.com/facebookgo/grace/gracehttp (from $GOROOT)
    /Users/me/project/application/src/github.com/facebookgo/grace/gracehttp (from $GOPATH)

如您所见,默认情况下,go env输出供应商实验处于启用状态,因为它似乎不起作用:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/project/application"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.6.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.6.2/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

现在,时髦的根源可能是先前go安装的宿醉。随着时间的推移,我安装了多种版本,有些通过gvm(版本管理器),有些通过自制软件。因此,我已经卸载了gvm以及已安装的go的版本,还取消了homebrew的安装,并使用homebrew仅重新安装了1.6.2。

去版本输出:

go version go1.6.2 darwin/amd64

去哪:

/usr/local/bin/go

任何想法在这里可能出了什么问题,或者我可能只是误解了供应商应该如何工作?

附言:请告诉我是否需要更多信息,乐意提供


问题答案:

似乎在application / src中

是的,走的是在寻找$GOPATH/src,无论是你的源代码 ,并vendor源文件夹。

一切都应该在 $GOPATH/src

供应商的文件
是指只有在的“父目录树上代码是可导入vendor”。
但这是您资料来源的一部分,因此,该资料应位于下方$GOPATH/src



 类似资料:
  • 问题内容: 我已经找到了尽可能多的文档和StackOverflow文章,但是使用Go 1.6中的新供应商功能无法导入。 这是我与Goji一起测试的示例项目。目录结构如下: 并且,项目中的唯一文件是这样的: 我的环境变量如下: 我尝试了最简单的构建命令,但是没有运气: 我也尝试用: …无济于事。我完全想念什么吗?任何建议表示赞赏。 问题答案: 我建议您阅读https://golang.org/doc

  • Oracle 的 Java SE 的 JSSE 实现是包含了一个名为 SunJSSE 的供应商,通过 JCA 来预装和预注册。这个供应商提供以下加密服务: SSL 3.0 和 TLS 1.0 安全协议的实现 最常见 SSL 和 TLS 密码套件的实现,其中包括认证、密钥协议、加密和完整性保护 一个基于 x.509 的密钥管理器的实现,用于从标准的 JCA keystore 中选择合适的认证密钥 一

  • 问题内容: 我的gopath是,跟随如下: 现在,我使用,然后变为: 这是: 那么,我应该使用什么命令?为什么没用?我的go版本是1.6.2。 问题答案: 借助Go1.6,您可以在阅读时内置供应商。这是什么意思?只有一件事要牢记: 当使用诸如或的工具时,他们首先检查依赖项是否位于中。如果是这样,请使用它。如果不是,请还原到该目录。 Go 1.6中的实际“查找路径”依次为: 话虽如此,将继续安装到您

  • 问题内容: 我正在编写一个应用程序并导入一些包。该软件包具有目录,其中又包含package 。我也想直接在我的应用程序中使用该软件包。 因此,我决定使用包管理器。这两种下载和进入目录,但保持里面。因此,当我构建自己的应用程序时,它会使用两个不同的C版本(也使用)来构建。 如何避免呢? 1)要么,有可以处理该问题的软件包管理器?似乎有其论点,但它不尊重这些软件包的版本。 2)或者,如何正确处理嵌套目

  • 问题内容: 3张表:供应商(sid,sname,地址),零件(pid,pname,颜色),目录(sid,pid,成本) 找到所有供应每个零件的供应商的答案是: 有人可以向我解释这个答案吗?我只是迷路了! 我听说它的解释是“寻找供应商,使他们不存在不出售的零件”,但是我在努力寻找如何 完成了。 所以如果我有一个 目录表 詹姆斯| 锤子 詹姆斯| 砧 詹姆斯| 扳手 亨利| 锤子 乐华| 砧 零件表