亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 1.12模塊:非本地導入中的本地導入

Go 1.12模塊:非本地導入中的本地導入

Go
紅糖糍粑 2023-06-26 15:36:00
我目前正在使用 Go 1.12 模塊,并且對導入感到非常厭倦。我正在使用 gin(網絡微服務)和 gorm(golang orm)制作rest-api。在 golang 模塊中工作時一切仍然正常。但在導入本地包時遇到麻煩目錄樹:go.mod:module github.com/Aragami1408/go-gormgo 1.12require (    github.com/gin-gonic/gin v1.4.0    github.com/jinzhu/gorm v1.9.9    github.com/lib/pq v1.1.1    github.com/satori/go.uuid v1.2.0)db.go:package db//code below...任務.go:package taskimport (    "../db")但是當我運行時仍然出現此錯誤:local import "../db" in non-local package我在谷歌上搜索了很多,但沒有任何幫助
查看完整描述

3 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

來自“模塊是否可以與相對導入一起使用,例如導入“./subdir”??”

在模塊中,最終有一個子目錄的名稱。

如果父目錄顯示“?module m”,則子目錄將導入為“?m/subdir”,而不是“?./subdir”。

在你的情況下:

import?"github.com/Aragami1408/go-gorm/db".
#?or?maybe
import?"go-gorm/db"
查看完整回答
反對 回復 2023-06-26
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

如果您使用 go 模塊,您可以使用以下命令將您的包替換為本地包:

go mod edit -replace github.com/username/project=/localpath

然后就打電話

go get github.com/username/project

一切都應該正常。


查看完整回答
反對 回復 2023-06-26
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

當遷移到“包管理器”時,您可以go mod使用以下命令創建文件:


go mod init myhost/myrepo/mymodule

然后將創建文件go.mod:


module myhost/myrepo/mymodule


go 1.15

現在您可以利用此文件列出對其他模塊的依賴項:


# i.e: your module mymodule depends on github.com/gorilla/mux

go get github.com/gorilla/mux

你運行它嗎?然后再次檢查內容go.mod


module myhost/myrepo/mymodule


go 1.15


require (

    github.com/gorilla/mux v1.7.4

)


您很高興,因為您利用了包管理器功能并且像老板一樣管理依賴項。

然而,...

但是,您忘記了需要維護所有導入具有相對路徑的目錄的 go 文件。


例子 :


如果你有main.go


package main


import (

    "fmt"


    "./router" // !! RELATIVE PATH

)


您還必須通過將相對路徑替換為 來進行遷移[module-name]/relative-path。在這種情況下,它必須變成:


package main


import (

    "fmt"


    "myhost/myrepo/mymodule/router" // !! ?? No more RELATIVE PATH

)


查看完整回答
反對 回復 2023-06-26
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號