簡體   English   中英

golang 意外的目錄布局

[英]golang unexpected directory layout

所以我從 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: /

現在我很困惑,這是什么問題? 文件都在那里,目錄就像它正在打印的一樣。 我如何解決它? 謝謝。

在 Golang 1.13 上,從 1.11 升級到 1.13 后,我的所有代碼突然發生了這種情況。

似乎 golang 1.13 不再喜歡像“./something”這樣的導入。

我必須開發任何導入,如“myapp/something”

查看GitHub 代碼布局

$GOPATH是項目的根目錄——你的每個 Github 存儲庫都將在$GOPATH下的幾個文件夾中檢出。
您的$GOPATH變量將指向您的 Go 工作區的根目錄,如如何編寫 Go 代碼中所述。

在你的情況下,在你的GOPATH文件夾下,你應該有

src/github.com/minio/minio

Anf 只有然后“所有 minio 目錄,包括供應商”

如果您在 goroot 和 gopath 下有重復的存儲庫,就會發生這種情況。 刪除 goroot 一個。

同樣對於 go1.13(移動到 go mod),我發現如果我將我的項目從我的 $GOPATH 下移出,我可以使用import "./mypackage"語句。 $GOPATH 下的同一個項目不會因上述 OP 給出的錯誤而構建。 我還沒有准備好放棄我的 $GOPATH 環境變量,但我確實喜歡在可能的情況下將小包保留在他們的項目本地,而不在不需要時提交到 go.mod 文件。

如果你的項目文件夾在 $GOPATH 目錄下,那么你應該在不使用“./package”的情況下導入你的包。

僅當您的項目文件在 $GOPATH 之外時,您才可以導入名稱為“./package”的包

在我意識到由於我的項目位置而無法正確導入本地包后,我遇到了這個問題。 我的項目不在 GOPATH 位置,所以我把我的項目移到了那里。 搬家前

我通過 ./package name 導入了包,在我將項目移動到 GOPATH 后,我通過 projectname/packagename 正確地導入了包。

所以我所做的是以正確的方式導入包“projectname/packagename”,所以我將導入“./packagename”更正為“”projectname/packagename。 希望它不會太混亂。 似乎這個錯誤可以從不同的情況出現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM