GAE

2011-11-03 17 views
5

में स्थानीय गो पैकेज कैसे आयात करें गोलांग + GAE में स्थानीय पैकेज कैसे आयात करें?GAE

मैं कुछ इस तरह करना चाहते हैं:

app/ 
-app.yaml 
-/my_app 
--my_app.go 
--/package1 
---package1.go 

my_app.go की लिस्टिंग:

package my_app 

import (
    "http" 
    "./package1" 
) 

func init() { 
    http.HandleFunc("/", package1.index) 
} 

package1.go की लिस्टिंग:

package package1 

import (
    "http" 
    "fmt" 
) 

func index (w http.ResponseWriter, r * http.Request) { 
    fmt.Fprint(w, "I'm index page =) ") 
} 

मैं इस मामले मैं एक त्रुटि है जैसे:

/path/to/project/my_app/my_app.go:5: can't find import: ./package1 
2011/11/03 10:50:51 go-app-builder: Failed building app: failed running 6g: exit status 1 

सहायता के लिए धन्यवाद।

उत्तर

1

आपको या तो पैकेज को अपनी एप्लिकेशन निर्देशिका में लिंक या कॉपी करने की आवश्यकता है। एप्लिकेशन निर्देशिका की जड़ से संबंधित पथ आयात पथ से मेल खाना चाहिए। package1 उपयोग करने के लिए, तो आप इस तरह देखने के लिए अपने अनुप्रयोग निर्देशिका कॉन्फ़िगर करना चाहिए:

app.yaml 
yourapp/yourapp.go 
package1/package1.go 

https://groups.google.com/d/msg/golang-nuts/coEvrWIJGTs/75GzcefKVcIJ

+1

वास्तविक लाइव उदाहरण के लिए https://github.com/haarts/flipco.in देखें जो बाहरी मूंछ lib का उपयोग करता है। – harm

+2

दुर्भाग्यवश, आप गलत हैं। मुझे अपने प्रश्न पर उत्तर मिला है। अगर मैं my_app/package1 में पैकेज जोड़ना चाहता हूं, तो मुझे "my_app/package1" आयात लिखना चाहिए। उत्तर के लिए धन्यवाद। – Rusfearuth

+0

घास मैं गलत oups हूँ। कृपया मेरे जवाब में "आपको चाहिए" के रूप में ध्यान दें, यह है कि मैं my_app – dupoxy

6

टिप्पणी में बताया गया है से की dupoxy का जवाब, यह देखते हुए में एक स्थानीय पैकेज आयात करने के लिए जिस तरह से स्थिति "my_app/package1" के रूप में आयात करना है:

import (
    "http" 
    "my_app/package1" 
) 
+2

के साथ पैकेज 1 आयात को मिश्रित करने के स्थान पर करता हूं, हालांकि नोट करें कि आप अपने प्रोग्राम को सामान्य रूप से संकलित/चला नहीं सकते क्योंकि उस तरह का सापेक्ष आयात पथ जीएई के बाहर काम नहीं करेगा। आप '' '+ build! Appengine'' 'के साथ एक" हाइब्रिड "ऐप बना सकते हैं जो' '' main.go''' फ़ाइल (उदाहरण के लिए) पर ध्वज का निर्माण करता है जो तब पूर्ण पैकेज पथ का उपयोग करके आयात करता है। फिर आपके जीएई जाने के लिए फ़ाइल सामान्य विपरीत बिल्ड प्रक्रिया से इसे बाहर करने के लिए विपरीत '' '+ बिल्ड अपेंगीन''' होगी। यह थोड़ा परेशान है लेकिन काम करता है। – Tom