2011-08-16 40 views
5

Tôi cố gắng để chạy Google App máy chủ phát triển Engine sử dụng Python 3.2 và Python 2.7, đã nhận lỗi trên cả hai:Làm cách nào để chạy máy chủ web của ứng dụng Google trên Windows chính xác?

Python 2.7:

D:\nCdy\WA>C:\Python27\python.exe "D:\Program Files\Google\google_appengine\dev_ 
appserver.py" wa.py 
Traceback (most recent call last): 
    File "D:\Program Files\Google\google_appengine\dev_appserver.py", line 76, in 
<module> 
    run_file(__file__, globals()) 
    File "D:\Program Files\Google\google_appengine\dev_appserver.py", line 72, in 
run_file 
    execfile(script_path, globals_) 
    File "D:\Program Files\Google\google_appengine\google\appengine\tools\dev_apps 
erver_main.py", line 156, in <module> 
    from google.appengine.tools import dev_appserver 
    File "D:\Program Files\Google\google_appengine\google\appengine\tools\dev_apps 
erver.py", line 179, in <module> 
    mimetypes.add_type(mime_type, '.' + ext) 
    File "C:\Python27\lib\mimetypes.py", line 344, in add_type 
    init() 
    File "C:\Python27\lib\mimetypes.py", line 355, in init 
    db.read_windows_registry() 
    File "C:\Python27\lib\mimetypes.py", line 259, in read_windows_registry 
    for ctype in enum_types(mimedb): 
    File "C:\Python27\lib\mimetypes.py", line 249, in enum_types 
    ctype = ctype.encode(default_encoding) # omit in 3.x! 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal 
not in range(128) 

Python 3.2:

D:\nCdy\WA>C:\Python32\python.exe "D:\Program Files\Google\google_appengine\dev_ 
appserver.py" wa.py 
Traceback (most recent call last): 
    File "D:\Program Files\Google\google_appengine\dev_appserver.py", line 76, in 
<module> 
    run_file(__file__, globals()) 
    File "D:\Program Files\Google\google_appengine\dev_appserver.py", line 72, in 
run_file 
    execfile(script_path, globals_) 
NameError: global name 'execfile' is not defined 

Làm thế nào để chạy nó?

+0

Ngoài bất cứ điều gì khác, bạn don' t muốn chỉ định đường dẫn đến tệp .py làm đối số cho dev_appserver; thay vào đó, bạn muốn chỉ định đường dẫn đến thư mục chứa app.yaml. – geoffspear

+0

có, đó cũng có thể là vấn đề. có lẽ, không chắc chắn. – Cynede

Trả lời

9

Nó sẽ không hoạt động với Python 3.2.

Tôi đã không gặp sự cố với GAE và Python 2.7 trên Windows 7. Nó sẽ sớm trở thành phiên bản được hỗ trợ chính thức.

Ngay bây giờ, phiên bản được hỗ trợ chính thức là Python 2.5, vì vậy bạn nên tải xuống nếu bạn gặp bất kỳ sự cố nào khi tải các phiên bản khác để hoạt động.

Tôi muốn đề xuất một cái gì đó như ActiveState vì không có tệp nhị phân chính thức cho phiên bản Python 2.5 mới nhất.

+0

Bạn có thể lấy Python 2.5.2 từ http://www.python.org/download/releases/2.5.2/ –

+0

Đó là một phiên bản _very_ lỗi thời. 2.5.6 là bản phát hành hiện tại và có thể là bản phát hành cuối cùng. Nhiều lỗi đã được sửa từ 2.5.2. Nếu bạn thực sự muốn phiên bản nhị phân chính thức mới nhất, đó là 2.5.4: http://www.python.org/download/releases/2.5.4/ – agf

+0

Chắc chắn, nhưng 2.5.2 là phiên bản được sử dụng bởi công cụ ứng dụng trong sản xuất: http://code.google.com/appengine/docs/python/runtime.html#Pure_Python –

0

Như đã đề cập, vấn đề là bạn đang chạy máy chủ thử nghiệm GAE với python 3.2 thay vì 2.7. Để khắc phục điều này, bạn có một vài lựa chọn:

Xác định thông dịch viên python bạn muốn hiển thị ở dòng lệnh (ví dụ như tạo ra một tập tin .cmd):

c:\python27\python dev_appserver.py project_dir 

Hoặc xác định lại thông dịch mặc định python mà có thể được thực hiện một trong hai bằng cách thay đổi trình xử lý .py trong "thiết lập các chương trình mặc định". Việc sửa đổi các biến môi trường đường dẫn cũng có thể giúp ích.

+1

Xem xét kỹ hơn mã của anh ấy. Việc sử dụng đầu tiên, trên thực tế, sử dụng Python 2.7. Tôi sẽ tách cả hai để làm rõ hơn. – agf

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