5 回答

TA貢獻1815條經(jīng)驗 獲得超13個贊
該go.mod
文件應(yīng)位于項目的根目錄下(在本例中為my-api-server/go.mod
)。
模塊路徑的第一部分應(yīng)該是域/路徑。例如,完整路徑可能是github.com/your-github-username/my-api-server
.?您看到的錯誤是因為第一部分不是域(帶有句點)。您不必發(fā)布模塊來開發(fā)它,但您需要使用適當(dāng)?shù)挠蛎?/p>
一旦有了模塊路徑,就可以使用完整模塊路徑+“/”+包的相對路徑來導(dǎo)入該模塊中包含的包。例如,
import?"github.com/your-github-username/my-api-server/my-utils/uuid"
由于main.go
和uuid
包含在同一模塊中,因此您不需要require
在go.mod
文件中聲明即可使用該uuid
包。您可以像任何其他包一樣導(dǎo)入它并且它會起作用。
我建議使用go build
并運行生成的可執(zhí)行文件,而不是使用go run
它來確保包含構(gòu)建過程中所需的所有文件。

TA貢獻2011條經(jīng)驗 獲得超2個贊
檢查 main.go 文件上的導(dǎo)入路徑。
我必須調(diào)用整個導(dǎo)入路徑:
github.com/[username]/[project-name]/views
代替:
[project-name]/views
讓它在我這邊發(fā)揮作用。

TA貢獻1795條經(jīng)驗 獲得超7個贊
如果您嘗試使用全局包(非標準),則包名稱的第一部分應(yīng)該有一個點('.')??赡苄枰c('.'),就像在任何 URL 中一樣,在本例中為 github.com...,它將其標記為遠程包。
如果你想使用本地包,那么你需要使用 go 模塊,那么第一部分將是你的 go 模塊的名稱(你在初始化 go 模塊時使用的名稱)。
示例(根據(jù)問題):轉(zhuǎn)到項目根文件夾(在本例中../src$
)并運行以下命令
go mod init myapiserver
這將創(chuàng)建一個go.mod和go.sum文件。
然后要導(dǎo)入uuid,您可以簡單地myapiserver/my-utils/uuid
在導(dǎo)入中使用
import "myapiserver/my-utils/uuid"
那么所有公共函數(shù)(以大寫字母開頭)都uuid.go
可以在當(dāng)前文件中訪問

TA貢獻1852條經(jīng)驗 獲得超7個贊
升級go版本到最新或1.16.1以上。
go version >=1.16.1 (required)
對于蘋果機 -
brew update brew upgrade golang
對于 linux - 刪除現(xiàn)有的 go,然后安裝最新的。
這對我有用。
- 5 回答
- 0 關(guān)注
- 316 瀏覽
添加回答
舉報