2017-05-26 43 views
12

मैंने अभी ओएसएक्स पर 1.6.4 और google-cloud-sdk 1.56.0.0 स्थापित किया है।Google-cloud-sdk 156.0.0 को कैसे ठीक करें "उन सभी में परिवर्तनों के लिए आपके आवेदन में बहुत सारी फ़ाइलें निगरानी की जा रही हैं।"

जब मैं स्थानीय dev_server चलाने का प्रयास करता हूं तो मुझे निम्न चेतावनी मिलती है।

/Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/mtime_file_watcher.py:156: उपयोगकर्ता चेतावनी: आपके आवेदन में बदलाव के लिए बहुत सारी फ़ाइलें हैं उन सभी की निगरानी की जानी चाहिए। आपको अपनी फ़ाइलों में कुछ बदलाव देखने के लिए विकास सर्वर को पुनरारंभ करना पड़ सकता है।

मैं इसे कैसे ठीक करूं?

यहाँ परियोजना है, केवल 4 फ़ाइलें हैं:

$ ls 
total 32 
drwxrwxrwx 6 Bryan staff 204 May 23 15:57 . 
drwxr-xr-x 10 Bryan staff 340 May 25 18:39 .. 
[email protected] 1 Bryan staff 69 Mar 22 09:40 app.yaml 
-rw-r--r-- 1 Bryan staff 554 Mar 28 09:26 index.yaml 
[email protected] 1 Bryan staff 3015 May 25 18:36 skincare.go 
-rw-r--r-- 1 Bryan staff 870 May 3 09:18 skincare_test.go 

मैं भी एक समस्या "मिल जाना" है कि हो रही है दूरदराज के संकुल "google.golang डाउनलोड करने की बजाय कोड को संकलित करने के प्रयास करता है। org/ऐप्लिकेशन इंजन "।

$ जाना

# import "google.golang.org/appengine" is ignored and "go get" yields this error: 
./skincare.go:31: undefined: appengine.Context 

संपादित अतिरिक्त जानकारी प्राप्त: मैं -u ध्वज के साथ अद्यतन के लिए मजबूर करने का प्रयास किया:
$ जाना

package skincarereview: directory "/Users/Bryan/go/src/skincarereview" is not using a known version control system 

-u प्राप्त यह त्रुटि है आउटपुट जब मैं स्थानीय सर्वर चलाने का प्रयास करता हूं:

$ /Users/Bryan/go/src/google-cloud-sdk/bin/dev_appserver.py app.yaml 
INFO  2017-05-30 14:27:31,722 devappserver2.py:692] Skipping SDK update check. 
INFO  2017-05-30 14:27:31,785 api_server.py:272] Starting API server at: http://localhost:60703 
INFO  2017-05-30 14:27:31,789 dispatcher.py:205] Starting module "default" running at: http://localhost:8080 
INFO  2017-05-30 14:27:31,793 admin_server.py:116] Starting admin server at: http://localhost:8000 
/Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/mtime_file_watcher.py:156: UserWarning: There are too many files in your application for changes in all of them to be monitored. You may have to restart the development server to see some changes to your files. 
    'There are too many files in your application for ' 
ERROR 2017-05-30 14:27:36,123 go_runtime.py:182] Failed to build Go application: (Executed command: /Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/goroot/bin/go-app-builder -app_base /Users/Bryan/go/src/skincarereview -arch 6 -dynamic -goroot /Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/goroot -gopath /Users/Bryan/go -nobuild_files ^^$ -incremental_rebuild -unsafe -binary_name _go_app -extra_imports appengine_internal/init -work_dir /var/folders/mw/0y88j8_54bjc93d_lg3120qw0000gp/T/tmpEOVMVuappengine-go-bin -gcflags -I,/Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/goroot/pkg/darwin_amd64_appengine -ldflags -L,/Users/Bryan/go/src/google-cloud-sdk/platform/google_appengine/goroot/pkg/darwin_amd64_appengine skincare.go skincare_test.go) 
/var/folders/mw/0y88j8_54bjc93d_lg3120qw0000gp/T/tmpEOVMVuappengine-go-bin/skincare.go:31: undefined: "google.golang.org/appengine".Context 

2017/05/30 10:27:36 go-app-builder: build timing: 0×skip (5ms total), 11×compile (2.128s total), 0×link (0 total) 
2017/05/30 10:27:36 go-app-builder: failed running compile: exit status 2 
+1

मेरा अनुमान है कि डेव सर्वर पर नज़र रखता है अनुप्रयोग निर्देशिका में उन के अलावा GOPATH में सभी .go फ़ाइलें। डिफ़ॉल्ट रूप से 'जाओ get' डाउनलोड नहीं होता है अगर पैकेज पहले से ही GOPATH पर है। स्रोत से अद्यतन को मजबूर करने के लिए 'get get -u' का उपयोग करें। –

+0

तो क्या इसका मतलब है कि मेरा गोपाथ (/ उपयोगकर्ता/ब्रायन/जाना) गलत है? – BryanWheelock

+0

मुझे नहीं लगता कि GOPATH गलत है। इसके अलावा, यह ऑटो पुनर्मूल्यांकन के बारे में सिर्फ एक चेतावनी है। बाकी सब कुछ काम करना चाहिए। –

उत्तर

3

मैंने केवल एपेंगेन एसडीके का एक पुराना संस्करण इस्तेमाल किया, लेकिन मेरा मानना ​​है कि नीचे अभी भी सत्य है।

मुख्य मुद्दा यह है कि आपके पास Google GOPATH के अंदर Google-क्लाउड-एसडीके है। यह जरूरी नहीं होना चाहिए। मैंने इसे अपने रास्ते में स्थापित किया है। लेकिन अगर स्थापित नहीं किया गया है तो इसे निष्पादन योग्य या स्क्रिप्ट के सापेक्ष इसके स्थान को हल करना चाहिए और आप सभी आवश्यक एसडीके फ़ाइलों को ठीक से ढूंढना चाहिए। साथ ही एसडीके लगभग 7500 फाइलें हैं और आपको "GOPATH में 10000 से अधिक (लगभग) होने की आवश्यकता है ताकि" कई फाइलों "चेतावनी प्राप्त हो सके। इसलिए, यदि आपके पास एक ही GOPATH के अंदर एसडीके या अन्य बड़ी परियोजना की एक और (उदा। पुरानी) प्रति है, तो आप थ्रेसहोल्ड से अधिक होने की काफी गारंटी देते हैं। बस खोजें/उपयोगकर्ता/ब्रायन/खोजक में जाएं और फ़ाइलों को गिनने के लिए "जानकारी प्राप्त करें" का उपयोग करें।

तो, या तो अपने GOPATH के बाहर एपेंगिन एसडीके को स्थानांतरित करें। या एक नया फ़ोल्डर बनाएं, इसे अपने नए GOPATH के रूप में निर्यात करें और उस नए फ़ोल्डर में अपनी प्रोजेक्ट फ़ाइलों (लेकिन एसडीके नहीं) को स्थानांतरित करें। इसे "बहुत अधिक फाइल समस्या" को ठीक करना चाहिए।

दूसरा मुद्दा यह है कि आपका ऐप वास्तव में निर्माण करने में विफल रहता है। और जैसा कि आप पहले ही पता लगा चुके हैं कि (तत्काल) समस्या में एपेंगेन पैकेज गुम है। go get google.golang.org/appengine

हालांकि मन GOPATH सही ढंग से उपरोक्त आदेश चल रहा सेट किया जाना चाहिए कि से पहले रखें:

लेकिन google.golang.org/appengine हो रही करने का सही तरीका इस प्रकार है। यह google.golang.org/appengine और इसकी सभी निर्भरताओं को लाएगा।

एक बार जब आप सभी आवश्यक पैकेज (और निश्चित त्रुटियों, यदि कोई हो) को पुनर्प्राप्त कर लेते हैं तो इसे बिना किसी समस्या के संकलित और चलाया जाना चाहिए।

+0

मैंने सोचा कि google-cloud-sdk से अपेक्षा की गई थी @ ~/go/src होना चाहिए/go/src में केवल मेरे कोड और निर्भरताएं होनी चाहिए और google-cloud-sdk को बहिष्कृत करना चाहिए? – BryanWheelock

+0

जाओ $ GOPATH की आवश्यकता होती है: google.golang.org/appengine – BryanWheelock

+0

पैकेज google.golang.org/appengine प्राप्त करें: $ GOPATH सेट नहीं हो सकता है। अधिक जानकारी के लिए देखें: गोपीथ – BryanWheelock

0

मैं क्लाउड एसडीके नहीं, बल्कि गो (1.9.54) के लिए ऐप इंजन एसडीके का उपयोग कर रहा हूं, लेकिन एक ही समस्या है [Goapp serve - Warning: There are too many files

मैंने बड़े पैकेज और भंडारों को vendor/ dir पर ले जाकर हल किया।

2

मेरे वर्तमान एसडीके संस्करण (Google Cloud SDK 171.0.0) dev_appserver.py के साथ enable_watching_go_path नामक एक विकल्प है।

इसे False पर सेट करने से चेतावनी हटा दी गई।

आदेश मैं का उपयोग करें: dev_appserver.py --enable_watching_go_path=False server/app.yml

0

संबंधित त्रुटि तब होती है जब mtime_file_watcher.py "GOPATH" के अंतर्गत सभी फाइलों पर नजर रखने की कोशिश करता है लेकिन बहुत सारी फ़ाइलें है, तो app.yaml की skip_files विकल्प का उपयोग जाँच करने के लिए विक्रेताओं, नोड_मोड्यूल और मनमाने ढंग से संख्याओं की संख्या निगरानी के लिए कई परियोजनाओं को छोड़कर टाला जा सकता है।

https://cloud.google.com/appengine/docs/standard/python/config/appref#skip_files

skip_files: 
- .*node_modules 
- .*vendor 
- .*project-name-having-too-many-files 
संबंधित मुद्दे