9

所以我从 github.com/minio/minio 下载了 minio

我想从源头运行它,

我创建我的目录,如:

~/Downloads/minio-RELEASE.2017-06-13T19-01-01Z
|
 src
   |
    all minio directories, including vendor, like the image below

在此处输入图像描述

我还使用godep解决 GOPATH 下的其他依赖项。

现在我从 Gogland 运行它(去 IDE)

表明:

GOROOT=/usr/local/Cellar/go/1.8.3/libexec
GOPATH=/Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z:/Users/xl/go
/usr/local/Cellar/go/1.8.3/libexec/bin/go build -i -o /private/var/folders/8v/6dg7d6mx2850sv1gp8ts9thm0000gn/T/go_run_main_gogo /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/main.go
unexpected directory layout:
    import path: github.com/Azure/azure-sdk-for-go/storage
    root: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src
    dir: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/vendor/github.com/Azure/azure-sdk-for-go/storage
    expand root: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src
    expand dir: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/vendor/github.com/Azure/azure-sdk-for-go/storage
    separator: /

现在我很困惑,这是什么问题?文件都在那里,目录就像它正在打印的一样。我如何解决它?谢谢。

4

6 回答 6

26

在 Golang 1.13 上,从 1.11 升级到 1.13 后,我的所有代码突然发生这种情况。

似乎 golang 1.13 不再喜欢像“./something”这样的导入。

我必须开发任何导入,例如“myapp/something”

于 2019-10-15T22:24:31.410 回答
8

请参阅GitHub 代码布局

$GOPATH是项目的根目录 - 您的每个 Github 存储库都将在下面的几个文件夹中检出$GOPATH
您的$GOPATH变量将指向 Go 工作区的根,如如何编写 Go 代码中所述。

在你的情况下,在你的GOPATH文件夹下面,你应该有

src/github.com/minio/minio

Anf只有“所有 minio 目录,包括供应商”

于 2017-08-01T05:05:37.347 回答
6

如果您在 goroot 和 gopath 下有重复的存储库,则可能会发生这种情况。删除 goroot 之一。

于 2019-05-29T08:05:36.167 回答
3

同样使用 go1.13(移动到 go mod),我发现如果我将我的项目从我的 $GOPATH 下移出,我可以使用import "./mypackage"语句。$GOPATH 下的同一个项目不会生成上面 OP 给出的错误。我还没有准备好放弃我的 $GOPATH 环境变量,但我确实希望尽可能将小包保留在他们的项目中,而不是在不需要时提交 go.mod 文件。

于 2020-03-21T18:30:56.167 回答
1

如果您的项目文件夹在 $GOPATH 目录下,那么您应该在不使用“./package”的情况下导入您的包。

仅当您的项目文件位于 $GOPATH 之外时,您才能导入具有“./package”名称的包

于 2021-05-25T16:06:39.057 回答
0

在我意识到由于我的项目位置而无法正确导入本地包后,我遇到了这个问题。我的项目不在 GOPATH 位置,所以我把我的项目移到了那里。搬家前

我通过 ./package name 导入了包,在将项目移到 GOPATH 后,我通过 projectname/packagename 正确导入了包。

所以我所做的就是以正确的方式“projectname/packagename”导入包,所以我将导入“./packagename”更正为“”projectname/packagename。希望它不会太混乱。似乎此错误可能会出现在不同的情况下。

于 2020-05-20T15:54:18.857 回答