Giter Club home page Giter Club logo

boboongae's Introduction

Using the Bobo Web Framework on Google App Engine

Bobo is a light-weight framework for creating WSGI web applications. This demo shows how to run it on Google App Engine.

See http://bobo.digicool.com/ for further information on bobo.

Running the application out of the box

Build and run the application:

$ python bootstrap.py --distribute
$ ./bin/buildout
$ ./bin/dev_appserver parts/boboongae

Then access the application using a web browser with the following URL:

http://localhost:8080/

Running tests

In order to run all functional tests enter the following command:

$ bin/nosetests

Uploading and managing

To upload application files, run:

$ ./bin/appcfg update parts/boboongae

For a more detailed documentation follow this url:

http://code.google.com/appengine/docs/python/tools/uploadinganapp.html

boboongae's People

Contributors

rodaebel avatar

Stargazers

Michael Russo avatar Michael R. Bernstein avatar  avatar Reed O'Brien avatar

Watchers

 avatar James Cloos avatar

boboongae's Issues

Can't build the project

The following steps fail:

  1. Create a python 2.5 virtualenv
  2. change directory to the virtualenv
  3. git clone git://github.com/rodaebel/boboongae.git
  4. activate the virtualenv
  5. change to the boboongae directory
  6. run bootstrap
  7. run buildout
  8. try to run the app

Basically, I get an AppConfigNotFoundError, apparently because none of the boboongae files were copied or symlinked into parts/boboongae (although various dependency files like bobo are there), so App Engine can't find the app.yaml file. The app works fine if you run it like this: bin/dev_appserver src/boboongae

Suggestions?

"No module named cgi"

dev_appserver throws an exception.

Steps to reproduce (tried on mac os):
cd /tmp/
virtualenv --no-site-packages bobo
cd bobo/
source bin/activate
git clone git://github.com/rodaebel/boboongae.git
cd boboongae/
python2.5 bootstrap.py --distribute && python2.5 bin/buildout
bin/dev_appserver parts/boboongae/

Then open localhost:8080 in browser:

WARNING 2011-06-13 13:14:57,943 urlfetch_stub.py:108] No ssl package found. urlfetch will not be able to validate SSL certificates.
INFO 2011-06-13 13:14:58,341 appengine_rpc.py:159] Server: appengine.google.com
INFO 2011-06-13 13:14:58,348 appcfg.py:440] Checking for updates to the SDK.
INFO 2011-06-13 13:14:59,653 appcfg.py:457] The SDK is up to date.
WARNING 2011-06-13 13:14:59,653 datastore_file_stub.py:657] Could not read datastore data from /private/tmp/bobo/boboongae/var/dev_appserver.datastore
INFO 2011-06-13 13:14:59,655 rdbms_sqlite.py:58] Connecting to SQLite database '' with file '/private/tmp/bobo/boboongae/var/dev_appserver.rdbms'
WARNING 2011-06-13 13:14:59,664 dev_appserver.py:4598] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
INFO 2011-06-13 13:14:59,670 dev_appserver_multiprocess.py:637] Running application boboongae on port 8080: http://localhost:8080
WARNING 2011-06-13 13:16:39,680 py_zipimport.py:139] Can't open zipfile /private/tmp/bobo/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg: IOError: [Errno 13] file not accessible: '/private/tmp/bobo/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg'
ERROR 2011-06-13 13:16:39,699 dev_appserver.py:4104] Exception encountered handling request
Traceback (most recent call last):
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 4053, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 3977, in _Dispatch
base_env_dict=env_dict)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 588, in Dispatch
base_env_dict=base_env_dict)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 3050, in Dispatch
self._module_dict)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2954, in ExecuteCGI
reset_modules = exec_script(handler_path, cgi_path, hook)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2834, in ExecuteOrImportScript
exec module_code in script_module.dict
File "/private/tmp/bobo/boboongae/parts/boboongae/main.py", line 3, in
from bobo import Application
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2450, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2339, in FindAndLoadModule
description)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2282, in LoadModuleRestricted
description)
File "/private/tmp/bobo/boboongae/parts/boboongae/bobo.py", line 39, in
import webob
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2450, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2339, in FindAndLoadModule
description)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 1505, in Decorate
return func(self, _args, *_kwargs)
File "/private/tmp/bobo/boboongae/parts/google_appengine/google/appengine/tools/dev_appserver.py", line 2282, in LoadModuleRestricted
description)
File "/private/tmp/bobo/boboongae/parts/google_appengine/lib/webob/webob/init.py", line 3, in
import cgi
ImportError: No module named cgi

Distribute 0.6.16 is causing build failures

Distribute 0.6.16 was released today, and for some reason the bootstrap.py is trying to install it in the system python after it downloads and installs 0.6.15:

$ python2.5 bootstrap.py --distribute
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.15.tar.gz
Extracting in /tmp/tmpW9stnl
Now working in /tmp/tmpW9stnl/distribute-0.6.15
Building a Distribute egg in /tmp/tmprJtKKZ
/tmp/tmprJtKKZ/distribute-0.6.15-py2.5.egg
Creating directory '/home/webmaven/Desktop/projects/boboongae/bin'.
Creating directory '/home/webmaven/Desktop/projects/boboongae/parts'.
Creating directory '/home/webmaven/Desktop/projects/boboongae/eggs'.
Creating directory '/home/webmaven/Desktop/projects/boboongae/develop-eggs'.
Getting distribution for 'distribute'.
Before install bootstrap.
Scanning installed packages
No setuptools distribution found
After install bootstrap.
Creating /usr/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg-info
error: /usr/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg-info: Permission denied
An error occurred when trying to install distribute 0.6.16. Look above this message for any errors that were output by easy_install.
While:
Bootstrapping.
Getting distribution for 'distribute'.
Error: Couldn't install: distribute 0.6.16

Transitive dependencies?

Is the rod.recipes.appengine recipe supposed to pull transitive dependencies into parts? I've noticed that if I pull in a package and it has dependencies, those dependencies get installed in eggs/, but never make it into parts/packagename unless they are individually listed in the buildout.cfg file as well.

Is this the intended behavior? I was under the impression that undeclared dependencies of declared dependencies should Just Work(tm).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.