5 回答

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

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

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

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