पैकेज लोड नहीं कर सकता: पैकेज


81

यहाँ त्रुटि संदेश है:

% go get     
can't load package: package .: no buildable Go source files in /Users/7yan00

% echo $GOPATH     
/Users/7yan00/Golang

आप उस त्रुटि का निवारण कैसे करेंगे?

जवाबों:


52

सुनिश्चित करें कि आप गो प्रोजेक्ट सोर्स फ़ोल्डर (जैसे /Users/7yan00/Golang/src/myProject) में उस कमांड का उपयोग कर रहे हैं ।

एक विकल्प ( इस बग के समान)-d विकल्प का उपयोग करना है ( go getकमांड देखें )

go get -d

-dध्वज का निर्देश संकुल डाउनलोड करने के बाद बंद करने के लिए मिल; अर्थात्, यह निर्देश देता है कि संकुल को स्थापित न करें।

देखें कि क्या आपके मामले में मदद करता है।


लेकिन आम तौर पर, जैसा कि इस धागे में वर्णित है :

go get पैकेज के लिए है, रिपॉजिटरी के लिए नहीं।

इसलिए यदि आप एक विशिष्ट पैकेज चाहते हैं, कहते हैं go.text/encoding, तो उपयोग करें

go get code.google.com/p/go.text/encoding

यदि आप उस रिपॉजिटरी में सभी पैकेज चाहते हैं, तो ...यह सूचित करने के लिए उपयोग करें:

go get code.google.com/p/go.text/...

@ 7yan00 आप उस कमांड को चलाने पर किस फ़ोल्डर में थे? आप किस संस्करण का उपयोग कर रहे हैं? किस OS पर? "नहीं चल रहा है" से, क्या आपका मतलब है कि जाओ कमांड लटका हुआ है, जमे हुए लगता है और कभी नहीं लौटता है?
वॉनज

2
मुझे अब भी यह समस्या है। मैं go getकिसी भी दूरस्थ संकुल को नहीं देख सकता । मुझे हमेशा मिलता है no buildable Go source files in
घंटेबैक

32

आपको $GOPATHनिर्देशिका की जांच करनी चाहिए । यदि पैकेज नाम की कोई खाली निर्देशिका है, go getतो रिपॉजिटरी से पैकेज डाउनलोड नहीं करता है।

उदाहरण के लिए, अगर मैं github.com/googollee/go-socket.ioपैकेज को जीथब रिपॉजिटरी से प्राप्त करना चाहता हूं , और पहले से ही एक खाली निर्देशिका github.com/googollee/go-socket.ioहै $GOPATH, तो पैकेज डाउनलोड go get नहीं करता है और फिर शिकायत करता है कि निर्देशिका में कोई निर्माण योग्य गो स्रोत फ़ाइल नहीं है। सबसे पहले किसी भी खाली निर्देशिका को हटाएं।


1
धन्यवाद, मुझे
/usr/local/go/src/github.com/GIT_PROJECT_NAME

13

संदेश का एक और संभावित कारण:

पैकेज लोड नहीं किया जा सकता है: .... कोई बिल्ड करने योग्य गो स्रोत फ़ाइलें नहीं है

जब स्रोत फ़ाइलों को संकलित किया जा रहा है:

// +build ignore

जिस स्थिति में फ़ाइलों को अनदेखा किया गया है और अनुरोध के अनुसार निर्माण योग्य नहीं है। यह व्यवहार https://golang.org/pkg/go/build/ पर प्रलेखित है।


1
मेरे लिए यह मामला था - परियोजना हमारे द्वारा निर्मित बायनेरिज़ की सुविधाओं को शामिल करने या बाहर करने के लिए बिल्ड टैग का उपयोग करती है, और पैकेज की प्रत्येक फ़ाइल में // +build myfeatureटैग था। वर्कअराउंड को डमी.गो नामक पैकेज में एक फाइल जोड़ना था जिसमें पैकेज डिक्लेरेशन (यानी, package myfeature) के अलावा कुछ भी नहीं था ।
mmindenhall

1
संकेत के लिए धन्यवाद, मेरे मामले में यह था // +build !windows
mx1up

इसी तरह, मुझे हाल ही में सामना करना पड़ा // +build go1.9जो इस त्रुटि का कारण बन रहा था जब मैं go1.8 के साथ निर्माण करने की कोशिश कर रहा था
21

1
यह अधिक प्रमाण है कि गो वास्तव में त्रुटि संदेशों में बहुत अधिक वर्णनात्मक और विशिष्ट होने की आवश्यकता है। वर्तमान में, यह बहुत तेजी से विकास के लिए अनुकूल नहीं है।
जे। स्कॉट एबलिन

6

मेरी स्थिति के लिए इसे हल करने के लिए:

मुझे स्थापित करने के लिए अधिक विशिष्ट उप-पैकेज निर्दिष्ट करना पड़ा।

गलत:

go get github.com/garyburd/redigo

सही बात:

go get github.com/garyburd/redigo/redis

3

यदि आप उस रिपॉजिटरी में सभी पैकेज चाहते हैं, तो इसका ...संकेत देने के लिए उपयोग करें, जैसे:

go get code.google.com/p/go.text/...

0

मेरे पास यह सटीक त्रुटि कोड था और मेरी रिपॉजिटरी की जांच करने के बाद पता चला कि कोई फाइल नहीं थी, लेकिन वास्तव में सिर्फ और अधिक निर्देशिकाएं थीं। तो यह मेरे लिए एक त्रुटि की तुलना में लाल हेरिंग का अधिक था।

मैं करने की सलाह दूंगा

जाओ एन.वी.

और सुनिश्चित करें कि सब कुछ जैसा है वैसा ही होना चाहिए, अपने ओएस में अपने पर्यावरण चर की जांच करें और यह सुनिश्चित करने के लिए जांचें कि आपका शेल (बैश या w / e) किसी .bash_profile या .bashrc फ़ाइल जैसी किसी चीज़ के माध्यम से समझौता नहीं कर रहा है। सौभाग्य।


0

आप मॉड से पैकेज डाउनलोड करने का प्रयास कर सकते हैं

go get -v all

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