"अपरिचित आयात पथ" जाओ पाने के साथ


91

मैं एक स्थापित करने की कोशिश कर रहा हूँ web.go, लेकिन go get github.com/hoisie/webरिटर्न चल रहा है

package bufio: unrecognized import path "bufio"
package bytes: unrecognized import path "bytes"
package crypto/rand: unrecognized import path "crypto/rand"
package crypto/sha1: unrecognized import path "crypto/sha1"
package crypto/tls: unrecognized import path "crypto/tls"
package encoding/base64: unrecognized import path "encoding/base64"
package encoding/binary: unrecognized import path "encoding/binary"
package encoding/json: unrecognized import path "encoding/json"
package errors: unrecognized import path "errors"
package fmt: unrecognized import path "fmt"

और यह कुछ और नहीं लौटने से पहले, विभिन्न पैकेजों के साथ थोड़ी देर के लिए जारी है। go envमुझे देता है:

GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/home/me/go"
GOTOOLDIR="/home/me/go/pkg/tool/linux_amd64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"

मैं कैसे स्थापित कर सकता हूं web.go? का उपयोग करना go get(बजाय go install) github पृष्ठ पर README में क्या है। मेरे जाओ संस्करण है go version go1.2 linux/amd64


3
निर्यात GOROOT लेकिन कोई GOPATH? GOROOT GOBIN से अलग है? आपने गो कैसे स्थापित किया? आपने अपना वातावरण कैसे स्थापित किया?
वोल्कर

मैंने golang.org/doc/install पेज का अनुसरण करके इंस्टॉल किया है । मुझे यकीन नहीं था कि GOPATH के लिए क्या रखा जाए।
21

जवाबों:


99

समस्याएँ अमान्य से संबंधित हैं GOROOT

मुझे लगता है कि आपने गो को इंस्टॉल किया है /usr/local/go
इसलिए अपने GOROOTमार्ग को मूल्य में बदलें /usr/local/go/bin

ऐसा लगता है कि आपका मतलब अपने कार्यक्षेत्र (GOPATH) से है /home/me/go

इससे आपकी समस्या ठीक हो सकती है।
इसे अपने bash प्रोफ़ाइल के नीचे, यहाँ स्थित => में जोड़ें$HOME/.profile

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin

के पुराने संदर्भों को निकालना सुनिश्चित करें GOROOT

फिर web.go को फिर से स्थापित करने का प्रयास करें।

यदि वह काम नहीं करता है, तो उबंटू को आपके लिए स्थापित करें।

sudo apt-get install golang

वीडियो ट्यूटोरियल: http://www.youtube.com/watch?v=2PATwIfO5ag


15
आपको लगभग कभी भी गरोठ निर्धारित नहीं करना चाहिए। आपकी पैठ घोषणा हिट / usr / स्थानीय / जाना / बिन नहीं है। इसके अलावा, ध्यान दें कि आधिकारिक रिलीज के बाद ubuntu पैकेज थोड़ा पीछे हैं, जो 1.2 है।
15

2
जब मैंने आधिकारिक साइट से जाने वाले इंस्टॉलेशन निर्देशों का पालन किया (टार फाइल इन / यूएसआर / लोकल से इंस्टॉल करें) तो मुझे उपरोक्त त्रुटि तब तक प्राप्त हुई जब तक कि मैंने ऊपर GOROOT को नहीं बदल दिया।
आकर्षित किया

1
फेडोरा 20 पर बस ताजा गोलंग 1.3 स्थापित किया गया go getहै और वही त्रुटि देता है। GOROOTके लिए सेट किया गया है /usr, अपने आप को / usr, नहीं / usr / स्थानीय में स्थापित करें। को सेट GOPATHकरें $HOME/go। किसी भी विचार की जाँच करने के लिए और क्या?
Dfr

15
खुद को जवाब देना: परेशान होना GOROOTसमस्या को तय करना प्रतीत होता है।
DFE

4
GOROOT की स्थापना नहीं करने के लिए +1। मैंने इसे परेशान किया, यह सुनिश्चित किया कि यह echo $GOROOTतब की जांच से असंतुष्ट था कि GO अभी भी इसके साथ env में था, go envजिसके साथ यह किया था और यह वह जगह थी /usr/local/goजहां मैं स्थापित हो गया हूं (इस प्रकार इसे किसी भी मामले में सेट करने की कोई आवश्यकता नहीं है)
StartupGuy

36

मैंने brewOSX 10.11 पर Go के साथ स्थापित किया , और पाया कि मुझे इसके लिए सेट GOROOTकरना होगा:

/usr/local/Cellar/go/1.5.1/libexec

(निश्चित रूप से इस मार्ग में संस्करण को गो संस्करण के साथ बदल दें जो आपके पास है)

ब्रू सीमिलिंक का उपयोग करता है, जो गूल को बेवकूफ बना रहे थे। तो घर लिंक का पालन करें।


आह, आखिरकार, मुझे कुछ मिला जो काम किया। धन्यवाद एरिक!
मीर अदनान

23

मेरे पास बिल्कुल वही मुद्दा था, पुराने संस्करण (पुराने पीपीए से स्थापित) से नए (1.2.1) डिफ़ॉल्ट पैकेज उबंटू 14.04 में स्थानांतरित करने के बाद।

पहला कदम मौजूदा गो को शुद्ध करना था:

sudo apt-get purge golang*

चेतावनी के बाद कौन सा आउटपुट:

dpkg: warning: while removing golang-go, directory '/usr/lib/go/src' not empty so not removed
dpkg: warning: while removing golang-go.tools, directory '/usr/lib/go' not empty so not removed

ऐसा लगता है कि गो कुछ पत्तियों को पीछे छोड़ देता है, जो बदले में नई स्थापना को भ्रमित कर सकता है। अधिक सटीक रूप से, इंस्टॉलेशन स्वयं ठीक हो जाएगा, लेकिन बाद में कोई भी आदेश जाता है, जैसे "जाओ कुछ प्राप्त करें" उन "अपरिचित आयात पथ" त्रुटियों को देता है।

मुझे केवल इतना करना था कि पहले उन डायर को हटा दिया जाए, गोलंग को फिर से स्थापित किया जाए, और सभी एक आकर्षण की तरह काम करें (यह मानते हुए कि आप भी GOPATH सेट करें)

# careful!
sudo rm -rf /usr/lib/go /usr/lib/go/src
sudo apt-get install golang-go golang-go.tools

मुझे भी हटाना था/usr/local/go/
नटिम

इसके अलावा / usr / bin / go को हटाना था।
ईटनफिल

6

क्योंकि GFW ने आपको golang.org एक्सेस करने से मना किया था! और जब मैं प्रॉक्सी का उपयोग करता हूं, तो यह अच्छी तरह से काम कर सकता है।

आप कमांड का उपयोग करके जानकारी देख सकते हैं go get -v -u golang.org/x/oauth2


1
यह ठीक वैसी ही समस्या है जैसी मुझे चीन में है। $ Http_proxy सेट करने के बाद, मैं त्रुटि के बिना पैकेज स्थापित कर सकता हूं।
राख

1
न केवल अवरुद्ध, बल्कि DNS भी प्रदूषित हैं। पहले http://ping.eu/nslookup/डोमेन के सही आईपी को खोजने के लिए जाएं, जिसे होस्ट फ़ाइल में सेट करें, फिर डाउनलोड करने के लिए एक प्रॉक्सी का उपयोग करें। export http_proxy=127.0.0.1:1080 https_proxy=127.0.0.1:1080 कभी-कभी आप सिर्फ गॉव को F शब्द कहना चाहते हैं
Mr.Wang नेक्स्ट डोर

4

$ unset GOROOTमेरे लिए काम किया। जैसा कि अधिकांश उत्तर आपके GOROOT को अमान्य बताते हैं।


2

मुझे MacOS 10.10 पर भी यही समस्या थी। और मैंने पाया कि ओह्मज़श शेल के कारण होने वाली समस्या। फिर मैं वापस चला गया सब कुछ ठीक हो गया।

यहाँ मेरा जाना env है

bash-3.2$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/bis/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1

क्या go envयह तब से है जब यह काम नहीं किया था या जब यह किया था? यह शायद "[अन्य शेल] के कारण नहीं था", बल्कि यह GOPATHउस अन्य शेल में सही ढंग से सेट होने में विफलता की संभावना थी । गोले के csh और zsh परिवार समान स्टार्टअप फ़ाइलों (अर्थात नहीं ) का उपयोग नहीं करते हैं ~/.profile। विशेष रूप से zshउपयोग करता है $ZDOTDIR/.zshenvऔर $ZDOTDIR/.zprofile(जहां $ZDOTDIRचूक $HOME)।
डेव सी


0

Go1.2 को go1.4 में अपग्रेड करने के बाद मेरे पास यही मुद्दा था।

मैंने अपने GOPATH में src से _src का नाम बदल दिया और फिर a go get -v

यह काम किया तो मैंने _src को हटा दिया।

आशा करता हूँ की ये काम करेगा।


0

एक अलग पैकेज स्थापित करते समय मुझे इस समस्या का सामना करना पड़ा, और यह आपके पैठ पर GOROOT और GOPATH कॉन्फ़िगरेशन के कारण हो सकता है। मैं GOROOT सेट नहीं कर सकता क्योंकि मेरे OS X इंस्टॉलेशन ने मेरे लिए इसे संभाल लिया है (मुझे विश्वास है)।

  1. अपने .profile (या जहाँ भी आप प्रोफ़ाइल कॉन्फ़िगरेशन संग्रहीत करते हैं, निम्नलिखित को सुनिश्चित करें: .bash_profile, .zshrc, .bashrc, आदि):

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
  2. साथ ही, यदि आप चाहते हैं unset GOROOTकि पथ गलत भी है, तो भी आप चाहते हैं ।

  3. इसके अलावा, अपने पेट साफ करने के लिए सुनिश्चित करें, उसी तरह जो मैंने नीचे किया है, GOPATH असाइनमेंट से पहले, यानी:

    export PATH=$HOME/bin:/usr/local/bin:$PATH
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
  4. फिर, source <.profile>सक्रिय करने के लिए

  5. पुन: प्रयास करें go get
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.