मैं एक उदाहरण कोड पर जाने और काम करने के लिए नया हूं जिसे मैं स्थानीयकृत करना चाहता हूं।स्थानीय पैकेज कैसे आयात करें?
मूल main.go
आयात बयान में यह था:
import (
"log"
"net/http"
"github.com/foo/bar/myapp/common"
"github.com/foo/bar/myapp/routers"
)
अब मैं common
और /home/me/go/src/myapp
में routers
पैकेज की है:
import (
"log"
"net/http"
"./common"
"./routers"
)
लेकिन जब मैं go install myapp
चलाता हूं मुझे ये त्रुटियां मिलती हैं:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
इसके अलावा, जब मैं आयात बयान में common
और routers
बजाय ./common
और ./routers
उपयोग करते हैं, मैं:
myapp/main.go:7:3: cannot find package "common" in any of:
/usr/local/go/src/common (from $GOROOT)
/home/me/go/src/common (from $GOPATH)
myapp/main.go:8:2: cannot find package "routers" in any of:
/usr/local/go/src/routers (from $GOROOT)
/home/me/go/src/routers (from $GOPATH)
कैसे मैं इसे ठीक कर सकते हैं?
सभी आयात कर रहे हैं "स्थानीय" आयात पथ की परवाह किए बिना की उम्मीद है। एक विस्तृत स्पष्टीकरण के लिए ["गो कोड कैसे लिखें"] (https://golang.org/doc/code.html) देखें। – JimB
@JimB दार्शनिक बहस को अलग कर रहा है, जो मुझे चिंतित है, ऊपर वर्णित समस्या को हल करने का तरीका है। – Karlom
मैं दार्शनिक बयान देने की कोशिश नहीं कर रहा हूं, मैं सचमुच कह रहा हूं कि * सभी * आयात आपके स्थानीय फाइल सिस्टम में होते हैं; कोई फर्क नहीं पड़ता कि वे रिमोट रेपो से निकले हैं या नहीं। सापेक्ष पथों का उपयोग करने की कोशिश न करें (वे कभी-कभी काम करते हैं, लेकिन निराश होते हैं), और "कोड कोड कैसे लिखें" दस्तावेज़ के माध्यम से जाएं, विशेष रूप से ["कोड संगठन"] पर अनुभाग (https://golang.org/ डॉक/code.html # संगठन)। – JimB