golang意外目录布局
所以我从github.com/minio/minio下载了minio 我想从源头上运行它 我创建的目录如下所示:golang意外目录布局,go,goland,Go,Goland,所以我从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(go IDE)运行它 它表明: GOROOT=/usr/l
~/Downloads/minio-RELEASE.2017-06-13T19-01-01Z
|
src
|
all minio directories, including vendor, like the image below
我还使用godep
解析GOPATH下的其他依赖项
现在我从Gogland(go 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: /
现在我很困惑,有什么问题吗?文件都在那里,目录就像它打印的一样。我怎么修理它?谢谢。请参阅
$GOPATH
是项目的根目录-每个Github repo都将在$GOPATH
下面的几个文件夹中检出您的
$GOPATH
变量将指向Go工作区的根,如中所述
在您的GOPATH
文件夹下,您应该
src/github.com/minio/minio
Anf只有“所有迷你目录,包括供应商”如果您在goroot和gopath下有重复的回购,则可能发生这种情况。删除goroot版本。在Golang 1.13上,从1.11升级到1.13后,我所有的代码都突然出现了这种情况 看起来golang 1.13不再喜欢像“/某物”这样的导入
我必须开发任何导入,比如“myapp/something”还有go1.13(使用move to go mod),我发现如果我将我的项目从$GOPATH下移出,我可以使用导入“/mypackage”语句。$GOPATH下的同一个项目不会生成上面OP给出的错误。我还没有准备好放弃$GOPATH环境变量,但我确实希望尽可能将小的包保留在项目的本地,而不必在不必要时提交go.mod文件。在意识到由于项目位置的原因,无法正确导入本地包后,我遇到了这个问题。 我的项目不在GOPATH位置,所以我将项目移到了那里。搬家前 我通过./package name导入包,在GOPATH中移动项目后,我通过projectname/packagename正确导入包 因此,我所做的是以“projectname/packagename”的正确方式导入包,因此我将导入“../packagename”更正为“projectname/packagename”。
希望不会太混乱。此错误可能在不同的情况下出现。如果您的项目文件夹位于$GOPATH目录下,那么您应该在不使用“/package”的情况下导入包
只有在项目文件位于$GOPATH之外时,才能导入名为“/package”的包谢谢您的回复。但我是新手,仍然不知道如何修复它。。你说我应该有
src/github.com/minio/minio
,但我的minio是直接的源代码,而不是下载的bogo-get
@Wingzero-createGOPATH/src/github.com/minio
,然后在该文件夹中克隆你的repo:这将为你提供GOPATH/src/github.com/minio/minio
,然后,go build
就可以了。或者,只需尝试一个获取github.com/minio/minio
:这应该也能做到(克隆+构建)惊人,它正在工作。谢谢!一个遗憾是Gogland仍然无法在我的断点处调试break。不管怎样,如果你告诉我在哪里设置断点,我会在这里跟进一个问题,希望能解决它。附录:现在最好的方法是使用模块。使用go mod init从代码中创建一个模块,然后将对目录的引用作为“replace”指令插入。有关更多信息,请参阅