5 回答

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

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

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

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
升級(jí)go版本到最新或1.16.1以上。
go version >=1.16.1 (required)
對(duì)于蘋果機(jī) -
brew update brew upgrade golang
對(duì)于 linux - 刪除現(xiàn)有的 go,然后安裝最新的。
這對(duì)我有用。

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
非常不尋常的情況,但我正在使用不正確/過時(shí)的符號(hào)鏈接main.go
。將其鏈接到正確的文件修復(fù)了該錯(cuò)誤。
- 5 回答
- 0 關(guān)注
- 266 瀏覽
添加回答
舉報(bào)