2009-02-07 33 views
17

Có ai có thể làm cho Google App Engine/Django hoạt động trong Pydev/Eclipse không? Tôi đã thử điều này nhưng đã gặp khó khăn khi nhận Pydev để nhận ra tất cả các thư mục liên kết bên ngoài (plugin django) mà tôi đã tham khảo. Tôi đã kết thúc việc sao chép tất cả các thư mục đó vào dự án, thay vì tham chiếu chúng, dẫn đến một thư mục dự án ồ ạt - nó thực sự là một giải pháp không thể thực hiện mà cuối cùng đã khiến tôi bỏ toàn bộ dự án. Vì vậy, tôi tự hỏi nếu có ai đã thử điều này hoặc có bất kỳ ý tưởng những gì tôi có thể đã làm sai. (Hãy ghi nhớ này là nỗ lực đầu tiên của tôi tại sử dụng Pydev, Django, App Engine và Python !!)Django + Pydev/Eclipse + Google App Engine - có thể?

+1

Vì vậy, những gì đã làm bạn kết thúc làm vào cuối đây? Bây giờ tôi đang tìm một giải pháp cho cùng một điều ... –

Trả lời

9

tôi đã không cá nhân thiết lập nó nhưng tôi đã nhìn thấy hướng dẫn này về cách để làm điều đó:

http://code.google.com/appengine/articles/eclipse.html

+5

Cảm ơn - vâng, bài viết đó có liên quan đến Eclipse/GAE nhưng không phù hợp với các đặc điểm của Eclipse/GAE/Django. –

+1

Pydev có hỗ trợ GAE sẵn có: http://stackoverflow.com/questions/523841/django-pydev-eclipse-google-app-engine-possible/872587#872587 – Casebash

1

Tôi vừa mới bắt đầu với Python và Google App Engine ngay hôm nay. Tôi nghĩ cả hai chúng tôi đều đập đầu vào cùng bức tường với sự tham khảo bên ngoài.

Tôi đã thử triển khai dự án google-app-engine-django cho ứng dụng của mình. Tôi đã trích xuất tất cả mọi thứ và tôi có dưới gốc của tôi/appengine_django và/django thư mục.

Tôi đã thêm chúng làm thư mục nguồn và tôi đã thêm thư mục/google_appengine/google làm tham chiếu bên ngoài.

Thông thường, điều này có ý nghĩa với tôi. Mỗi phần chứa mô đun __ init __.py. Tuy nhiên, khi tôi cố gắng để ctr + bấm vào bất kỳ của các báo cáo nhập khẩu nó không thể giải quyết đường dẫn đến các mô-đun.

Đáng chú ý, bạn không nhập thư mục tức thì chứa __ init __.py. Để tham chiếu đúng các gói bạn nhập thư mục mẹ chứa gói duh! Điều đó cũng có nghĩa là, vì tôi không muốn sử dụng thư mục/src, thư mục dự án thực nên được thêm làm tham chiếu nguồn để lấy/appengine_django và/django được nhận dạng là thư mục nguồn.

Khi thực hiện xong, mọi thứ đều chạy trơn tru. Tôi đoán nó cho thấy tôi có nhiều đọc để làm trên Py.

5

Pydev 1.4.6 (vẫn chỉ có sẵn trong đêm xây dựng) có một số hỗ trợ đặc biệt để dễ dàng trong cấu hình. Xem: http://pydev.blogspot.com/2009/05/testing-on-pydev-146-google-app-engine.html

+0

Tôi nghĩ rằng vấn đề ở đây không phải là Pydev với Appengine nhưng Pydev với Appengine VÀ djangoappengine http://www.allbuttonspressed.com/projects/djangoappengine – j7nn7k

2

Tôi ban đầu được liên kết với this tutorial. Pydev bây giờ đã hỗ trợ Django vì vậy điều này có lẽ ít liên quan hơn. Nó vẫn có thể hữu ích cho việc tìm ra cách làm cho tất cả chúng hoạt động cùng nhau. Bạn cũng có thể thử xem this blog post.

2

appengine 1,31
Django 1.1
PyDev 1.5.4
OS Ubuntu 9,10


nhật thực.tập tin pydevproject:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?eclipse-pydev version="1.0"?> 
<pydev_project> 
<pydev_variables_property name="org.python.pydev.PROJECT_VARIABLE_SUBSTITUTION"> 
<key>GOOGLE_APP_ENGINE</key> 
<value>/home/elvis/google_appengine</value> 
</pydev_variables_property> 
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH"> 
<path>/pythonleggo</path> 
</pydev_pathproperty> 
<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH"> 
<path>${GOOGLE_APP_ENGINE}</path> 
<path>${GOOGLE_APP_ENGINE}/lib/webob</path> 
<path>${GOOGLE_APP_ENGINE}/lib/yaml/lib</path> 
</pydev_pathproperty> 
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property> 
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property> 
</pydev_project> 

Files:

thư mục dự án thực
- app.yaml
- index.yaml
- init py
- main.py
- manage.py
- .project
- .pydevproject
- settings.py (không thể tải) - urls.py


main.py:

from google.appengine.dist import use_library 
use_library('django', '1.1') 

from django.conf import settings 

settings.configure(
DEBUG=True, 
TEMPLATE_DEBUG=True, 
ROOT_URLCONF = 'urls', 
PROJECT_NAME = 'pythonleggo', 
SETTINGS_MODULE = '.settings', 
ADMINS = ('elvis', '[email protected]'), 
LANGUAGE_CODE = 'en-us', 
SITE_ID = 1, 
USE_I18N = True, 
MEDIA_ROOT = '', 
MEDIA_URL = '', 
ADMIN_MEDIA_PREFIX = '/media/', 
SECRET_KEY = 'shhh', 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source', 
    'django.template.loaders.app_directories.load_template_source'), 
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware'), 

TEMPLATE_DIRS=('/home/jmurphy/workspace/pythonleggo/templates'), 
INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites') 
) 

#os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 
from google.appengine.ext.webapp import util 

def main(): 
    # Run Django via WSGI. 
    application = django.core.handlers.wsgi.WSGIHandler() 
    util.run_wsgi_app(application) 
if __name__ == ' __main__': 
    main() 

eclipse chạy:
/usr/bin /python2.6 -u /home/elvis/google_appengine/dev_appserver.py

PYTHONPATH sẽ b e được sử dụng là:

/home/elvis/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins/org.python.pydev_1.5.4.2010011921/PySrc/pydev_sitecustomize:/home/elvis/workspace/pythonleggo: /home/elvis/google_appengine:/home/elvis/google_appengine/lib/webob:/home/elvis/google_appengine/lib/yaml/lib:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2 .6/gtk-2.0: /usr/lib/python2.6: /usr/lib/python2.6/dist-packages: /usr/lib/python2.6/dist-packages/PIL:/usr/lib/python2 .6/dist-packages/gst-0.10: /usr/lib/python2.6/dist-packages/gtk-2.0: /usr/lib/python2.6/lib-dynload: /usr/lib/python2.6/ lib tuổi: /usr/lib/python2.6/lib-tk: /usr/lib/python2.6/plat-linux2: /usr/local/lib/python2.6/dist-packages


Tôi không thể tải tệp cài đặt bằng os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings'. Nó xuất hiện để được tước khỏi môi trường mà django nhận được. Tôi đã sử dụng settings.configure xuất hiện để hoạt động chính xác. Tại thời điểm này tôi chỉ có mặc định tải trang django trong appspot.

+0

Tại sao bạn sử dụng 2.6? App Engine chỉ hỗ trợ 2.5 – Casebash

3

Câu hỏi này chưa được trả lời trong một thời gian và mọi thứ đã thay đổi, vì vậy tôi nghĩ tôi sẽ cung cấp và cập nhật.

PyDev hiện bao gồm cấu hình Google App Engine ngoài hộp và bạn có thể gỡ lỗi và chạy các dự án GAE ngoài hộp, bao gồm Django.

Chỉ cần cài đặt GAE và Eclipse/PyDev mới nhất trên máy của bạn, sau đó tạo dự án GAE và trỏ PyDev vào phiên bản Python và Google App Engine của bạn.

0

Đây là một hướng dẫn khác có thể hữu ích.
Phiên bản eclispe có thể hơi cũ nhưng nó sẽ giúp bạn đủ xa để có được một dự án làm việc.

http://django-appengine.com/contents

Nó đã hoàn thành thực thiết lập
http://django-appengine.com/post/37462709481/
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

Nó đã hoàn gae lập
http://django-appengine.com/post/37615321945/

Nó đã hoàn django lập
http://django-appengine.com/post/37628665099/

Và sau đó giải thích cách kết hợp hai dự án đó vào một dự án gae.
http://django-appengine.com/post/37778427717/

Tôi hy vọng điều này sẽ giúp những người khác chỉ là bắt đầu