所以我从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: /
现在我很困惑,问题是什么?文件都在那里,目录就像它的打印一样。我如何解决它?感谢。
答案 0 :(得分:9)
在Golang 1.13上,从1.11升级到1.13后,我的所有代码突然发生在我身上。
似乎golang 1.13不再喜欢“ ./something”之类的导入。
我必须开发任何导入文件,例如“ myapp / something”
答案 1 :(得分:5)
$GOPATH
是项目的根目录 - 您的每个Github存储库都会在$GOPATH
下面的几个文件夹中签出。
您的$GOPATH
变量将指向Go工作区的根,如How to Write Go Code中所述。
在您的情况下,在GOPATH
文件夹下面,您应该
src/github.com/minio/minio
仅Anf 然后“所有minio目录,包括供应商”
答案 2 :(得分:2)
还使用go1.13(带有move go模式),我发现如果我将项目从$ GOPATH下移出,则可以使用 import“ ./mypackage” 语句。 $ GOPATH下的同一项目不会因上述OP给出的错误而构建。我还没有准备放弃$ GOPATH环境变量,但我希望在可能的情况下将小型软件包保留在其项目的本地,而在不需要时不提交go.mod文件。
答案 3 :(得分:0)
如果您在goroot和gopath下有重复的存储库,则可能会发生这种情况。删除goroot一个。
答案 4 :(得分:0)
由于我的项目位置,我意识到无法正确导入本地软件包后,遇到了这个问题。 我的项目不在GOPATH位置,所以我将项目移到了那里。移走
我通过./package名称导入了软件包,并且在GOPATH中移动了项目之后,我通过projectname / packagename正确导入了软件包。
所以我要做的是以正确的方式“项目名称/软件包名称”导入软件包,因此我将导入的“ ./软件包名称”更正为“项目名称/软件包名称”。 希望它不会太混乱。看来此错误可能出现在不同的情况下。
答案 5 :(得分:0)
如果你的项目文件夹在 $GOPATH 目录下,那么你应该在不使用“./package”的情况下导入你的包。
只有当您的项目文件在 $GOPATH 之外时,您才能导入带有“./package”名称的包