2011-12-23 45 views
8

Tôi đã cài đặt Python 2.7.2 (Win7 32-bit) và Google App Engine SDK 1.6.1 cho Win7 trên 64 bit hệ thống chạy Win7 Home Premium. Vị trí thư mục mặc định cho cả Python và GAE. Khi tôi cố gắng chạy dự án helloworld như được mô tả trong tài liệu Bắt đầu Google Python, nút "duyệt" của Trình khởi chạy không bao giờ được kích hoạt. SDK GAE được cho là hoạt động tốt với Python 2.7.Python 2.7.2 và Google App Engine SDK 1.6.1 trên Win 7 Home Premium không hoạt động

Có danh sách đầy đủ ở bất kỳ biến môi trường nào cần thiết để thiết lập này hoạt động không? Cho đến nay, tất cả các bài viết tôi đã thấy là từ những người dùng đã vượt qua bước hoàn toàn cơ bản này.

+2

Bạn có thể thử chạy dự án của mình từ dòng lệnh và xem nếu thích hợp hơn với bạn. Tôi sử dụng dòng lệnh thay vì trình khởi chạy trên Windows 7 với python 2.7 và tôi không sử dụng trình khởi chạy vì tôi có nhiều quyền kiểm soát hơn từ dòng chung: 'python dev_appserver.py project_name' –

Trả lời

0

Bạn có thấy gì trong nhật ký GAE SDK không?

Bạn đang sử dụng trình duyệt nào? Trình duyệt mặc định của bạn là gì?

Cài đặt bảo mật mặc định trong IE yêu cầu bạn bật quyền truy cập mạng nội bộ.

Gần đây tôi đã phải xây dựng lại hộp dev Win7 của mình. Chrome là trình duyệt mặc định của tôi. Khi tôi cài đặt GAE SDK v1.6.1, tôi đã gặp phải sự cố tương tự với những gì bạn mô tả.

Tôi đã kiểm tra nhật ký và không sử dụng cấu hình trình duyệt để giải quyết.

Hồi ức của tôi là khi tôi thực hiện lại trình duyệt mặc định của IE 9, tôi đã thấy lỗi bảo mật mạng nội bộ. Sau khi cho phép truy cập vào các trang web mạng nội bộ như localhost: 8080, mọi thứ bắt đầu hoạt động OK, nhưng khởi động đôi khi chậm. Sau đó, tôi đã đặt lại Chrome làm trình duyệt mặc định của mình và khởi động nhanh hơn và đáng tin cậy hơn.

+0

Bằng nhật ký" GAE SDK ", bạn có có nghĩa là nhật ký cho trình khởi chạy? Làm thế nào để có được những? Tôi thấy tùy chọn "Bảng điều khiển SDK" trong trình đơn nhưng tùy chọn này bị tắt vĩnh viễn (GAE 1.7.5 trên Win7). –

3

Tài liệu Google để thiết lập GAE bằng Python 2.7 có một số vấn đề. Nếu bạn đang cố gắng khởi chạy ứng dụng "hello world" cơ bản thông qua giao diện GUI App Engine, sau khi làm theo hướng dẫn, có thể bạn đang thấy văn bản màu đỏ và tất cả các nút đều chuyển sang màu xám?

Nếu có, đó là do có lỗi trong chương trình helloworld.py của bạn - đây là nơi các hướng dẫn của Google không thành công.

tuyên bố Việc nhập khẩu họ có trong hướng dẫn:

import webapp2 

này thất bại, nó cần để trỏ đến các trường hợp địa phương của webapp GAE của. Ngoài ra, chương trình Python 2.7 của họ chưa hoàn chỉnh. Nếu bạn nhìn vào Python 2.5 Ví dụ, bạn sẽ thấy những chương trình đầy đủ (bạn có thể cần phải sửa đổi webapp -> webapp2 cho Python 2,7?):

from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.out.write('Hello, webapp World!') 

application = webapp.WSGIApplication(
            [('/', MainPage)], 
            debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

Điều cuối cùng, các file YAML trong các hướng dẫn của Google tham khảo "helloworld.app" - Tôi không thể xác nhận điều này, nhưng tôi nghĩ nó cần phải là "helloworld.py" ?? Tôi không biết, tôi có thể sai.

Một vài tháng đã trôi qua kể từ khi bạn đăng câu hỏi, nếu bạn phát hiện ra bất kỳ chi tiết nào, vui lòng cập nhật câu hỏi này.

+0

Thực ra, chương trình Python của Google hoạt động chính xác. Nó chỉ ra dòng 'def main()', 'if __name__', và' from' lines bạn đã viết là _not_ cần thiết cho webapp2 trong Python 2.7. Đó là thư viện webapp (không phải webapp2) cũ hơn ([source] (https://developers.google.com/appengine/docs/python/python25/migrate27#wsgi)). Bạn có thể xác minh điều này bằng cách nhấn nút chạy trên [hello world tutorial] của Google (https://developers.google.com/appengine/docs/python/gettingstartedpython27/helloworld), sẽ đưa bạn đến appengine nơi hướng dẫn đang hoạt động đúng. – pghprogrammer4

0

Tôi khá chắc chắn đó là bởi vì bạn đã thay đổi mã hóa từ ANSI để loại khác (chẳng hạn như UTF-8) trên app.yaml,

thay đổi nó trở lại ANSI, sau đó bạn có thể chạy dự án trên Trình khởi chạy ứng dụng của Google.

BTW, hướng dẫn helloworld trên google không có vấn đề gì.

2

Tôi đang gặp phải vấn đề tương tự, nút duyệt đã bị tắt. Tôi chạy lệnh dev_appserver.py helloworld tại dấu nhắc lệnh và sau đó mở localhost: 8080 trong trình duyệt của tôi chương trình hello world chạy thành công.

0

Tôi gặp sự cố tương tự; hóa ra vấn đề của tôi là không phải do biến môi trường.

Debugging GAE:

Trước hết hãy để tôi nói rằng nếu bạn đang gặp vấn đề với GAE, tôi sẽ mạnh khuyên bạn nên khởi động bằng cách sử dụng CLI, google_appengine/dev_appserver.py. Có một dấu vết stack lớn của lý do GAE là không (thay vì chỉ đơn giản là một liên kết màu đỏ trong GUI Launcher GAE) mà sẽ chỉ cho bạn đi đúng hướng.

Ẩn nhân vật xấu:

Khi sao chép văn bản từ "hello world" hướng dẫn của google, đã có một nhân vật ẩn vô hình vào lúc bắt đầu của file YAML của tôi (tôi tìm thấy nó bằng cách sử kdiff, một công cụ diff) . Sau khi xóa ký tự này, ứng dụng của tôi đã khởi chạy (và hiển thị không phải màu đỏ trong GUI Trình khởi chạy GAE).

Environment Variables:

Như cho câu hỏi ban đầu của bạn, chỉ có các biến môi trường có liên quan tôi đã thiết lập là biến PATH của tôi, nơi tôi đã gắn thư mục của thực thi python của tôi (trong trường hợp của tôi C: \ Python27) để tôi có thể chạy các tệp python mà không chỉ định đường dẫn đầy đủ tới Python. Tuy nhiên, hãy để tôi nhắc lại rằng tôi không tin rằng đây là nguyên nhân của vấn đề của bạn, nhưng bạn có thể trực tiếp xác nhận điều này bằng cách sử dụng CLI.

0

Giống như pghprogrammer4 above, tôi đã giải quyết vấn đề này bằng cách xóa các ký tự không hợp lệ trong tệp của tôi. Chúng vô hình trong trình soạn thảo văn bản thông thường của tôi (văn bản cao cấp 2) nhưng tôi đã tìm thấy chúng với trình soạn thảo hex của trình soạn thảo đó. Tôi biết những gì để tìm kiếm, bởi vì tôi nhận thấy một không gian ở đầu của ứng dụng Lưu bút của tôi (một vài hướng dẫn trong). Vì vậy, tôi đã xem xét gỡ lỗi trong Chrome và nó hiển thị ký tự Zero Width Space. Trang Unicode có giá trị thập lục phân của ký tự này nên tôi đã tìm kiếm nó (không cần phải tìm kiếm nhiều, đó là ba byte đầu tiên của tệp) và loại bỏ nó. Rất may Sublime Text 2 có chế độ thập lục phân, nhưng bạn có thể sử dụng bất kỳ trình chỉnh sửa hex nào để tìm và xóa các ký tự không hợp lệ.

Tôi chắc chắn rằng điều này là do phương pháp sao chép và dán rất cụ thể từ trang web hướng dẫn của Google. Nó không xảy ra với tôi trong ví dụ Hello World vì tôi đã gõ nó bằng tay. Sau đó, nó xuất hiện trong một trong các tệp của tôi, khiến cho CSS không tải. Sau đó nó đã khiến Trình khởi chạy Google App Engine nghĩ về dự án của tôi là thiếu tệp (chuyển sang màu đỏ trong trình khởi chạy). Tôi trở lại một phiên bản làm việc (chỉ bằng cách hoàn tác trong trình soạn thảo văn bản), và sao chép từng bộ lệnh mới vào tệp từ hướng dẫn, hy vọng sẽ nắm bắt được một chút kịch bản đã làm cho tôi hơn. Nhưng khi tôi kết thúc thì mọi thứ đều hoạt động. Tôi SURMISE rằng lỗi này được giới thiệu khi bạn sao chép và dán một hộp văn bản AN TOÀN BỘ từ trang web hướng dẫn của Google App Engine và chèn nó vào một trong các tệp của bạn. Tôi nghi ngờ rằng ký tự ZWSP tồn tại trên trang web đó là ký tự đầu tiên trong các hộp mã hoặc thứ gì đó, nhưng đã muộn và tôi sẽ không xem xét thêm nữa.

Tôi đoán bạn chỉ nên nhập các hướng dẫn - đó có thể là cách tốt hơn để tìm hiểu.

2

Tôi đã so sánh ví dụ về helloworld với bản trình bày lưu bút và thấy rằng phần tử ứng dụng là chìa khóa. Tôi đã thêm dòng ở đầu ứng dụng.tập tin yaml "application: helloworld" và ví dụ helloworld bắt đầu hoạt động trong Google App Engine (GAE). Lưu ý rằng phần tử 'application' được cho là tùy chọn như được định nghĩa trong tham chiếu app.yaml. Có vẻ như nó là tùy chọn nếu bạn sử dụng dòng lệnh và nó không phải là tùy chọn nếu bạn sử dụng GAE.

+0

nó đã giúp nhưng, lúc đầu tiêu đề này đã gây ra vấn đề trong quá trình triển khai. Vì vậy, tôi đã loại bỏ tiêu đề ứng dụng và thông qua gcloud sao chép dự án. – saikumarm

0

Tôi đã thực hiện hai thay đổi cùng nhau - 1. thêm dòng ở đầu tệp app.yaml "application: helloworld" 2. thay đổi dòng cuối cùng trong app.yaml "script: helloworld.app" thành "script : helloworld.py "

GAE của tôi bắt đầu hoạt động. Tuy nhiên để giải phóng vấn đề tôi 'undid' cả hai thay đổi, nó chỉ ra rằng thay đổi thứ 2 - thay đổi helloworld.app thành helloworld.py đã thực hiện phép thuật

Các vấn đề liên quan