You need to select complete web2py folder. Also you need to remove Admin 
app from applications. There is one routes.py where you can configure your 
default application to be called. 

On Tuesday, 8 December 2015 13:55:22 UTC+5:30, Brad Cardello wrote:
>
> Alright, so I changed the name from web2py-class to web2py, and I moved 
> app.yaml and gaehandler.py to the same level as applications and gluon/ but 
> Google App Engine Launcher refuses to run it, saying that it could not find 
> app.yaml in the specific application I want it to run. I'm selecting my 
> actual app (i.e.: web2py/applications/myappname), should I just be 
> selecting web2py or web2py/applications? Thank you again for the assistance.
>
> On Mon, Dec 7, 2015 at 9:00 PM, Massimo Di Pierro <massimo....@gmail.com 
> <javascript:>> wrote:
>
>> The easiest setup is if you have web2py/ and web2py/applications/ under 
>> it. It really does not matter if it is called web2py or not but it matters 
>> that web2py.py and gaehandler.py and gluon/ are at the same level as 
>> applications.
>>
>> You can put your applications in a different folder but this requires 
>> changing default parameters in examples/options_std.py. I would  not 
>> recommend that to a new user.
>>
>> Massimo
>>
>>
>>
>> On Monday, 7 December 2015 19:38:15 UTC-6, Brad Cardello wrote:
>>>
>>> Ah, thank you for the advice on removing main.py. And my folder 
>>> structure is similar to that, with one change. I don't quite remember if 
>>> this is something I did manually per my instructor's advice, but instead of 
>>> web2py/, my folder is called web2py-class. I do have a folder called web2py 
>>> located elsewhere on my computer, though. Should I move my application from 
>>> web2py-class/applications/ to web2py/applications? Thank you so much.
>>>
>>> On Monday, December 7, 2015 at 6:57:31 AM UTC-8, Massimo Di Pierro wrote:
>>>>
>>>> You should not need that main.py in web2py. web2py does not uses 
>>>> webapp2. You only need app.py and gaehandler.py They look correct. The 
>>>> error is from this lines in gaehandler:
>>>>
>>>>
>>>> if not os.path.isdir('applications'):
>>>>     raise RuntimeError('Running from the wrong folder')
>>>>
>>>>
>>>> Do you have the correct folder structure?
>>>>
>>>> web2py/
>>>>    app.yaml
>>>>    gaehandler.py
>>>>    web2py.py
>>>>    applications/...
>>>>    gluon/...
>>>>    [etc etc]
>>>>
>>>>
>>>> On Monday, 7 December 2015 06:40:49 UTC-6, Brad Cardello wrote:
>>>>>
>>>>> Hey everyone, I'm still fairly new to web2py, and completely new to 
>>>>> deploying my website (developed using PyCharm, if that matters). So, 
>>>>> here's 
>>>>> the error I'm getting in the logs whenever I try to access my website:
>>>>>
>>>>> Traceback (most recent call last):
>>>>>>
>>>>>>   File "C:\Program Files 
>>>>>> (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 
>>>>>> 240, 
>>>>>> in Handle
>>>>>>
>>>>>>     handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
>>>>>>
>>>>>>   File "C:\Program Files 
>>>>>> (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 
>>>>>> 299, 
>>>>>> in _LoadHandler
>>>>>>
>>>>>>     handler, path, err = LoadObject(self._handler)
>>>>>>
>>>>>>   File "C:\Program Files 
>>>>>> (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 
>>>>>> 85, 
>>>>>> in LoadObject
>>>>>>
>>>>>>     obj = __import__(path[0])
>>>>>>
>>>>>>   File "C:\Users\Brad Cardello\Desktop\Computer 
>>>>>> Science\CMPS-183\web2py-class\applications\WebUcscTutor\gaehandler.py", 
>>>>>> line 40, in <module>
>>>>>>
>>>>>>     raise RuntimeError('Running from the wrong folder')
>>>>>>
>>>>>> RuntimeError: Running from the wrong folder
>>>>>>
>>>>>> INFO     2015-12-07 01:10:16,092 module.py:787] default: "GET / 
>>>>>> HTTP/1.1" 500 -
>>>>>
>>>>>
>>>>>
>>>>> I'm really not sure why this is happening, as it gives me this error 
>>>>> no matter where gaehandler.py is located in my file system. At the 
>>>>> moment, 
>>>>> per multiple people's instructions, my app.yaml, gaehandler.py, and 
>>>>> main.py 
>>>>> are all in the root directory for my project 
>>>>> (/web2py-class/applications/WebUcscTutor). I've tried moving it to 
>>>>> web2py-class/applications, and web2py-class, but nothing seems to change 
>>>>> this error.
>>>>>
>>>>> Here's my *app.yaml*
>>>>>
>>>>> #  For Google App Engine deployment, copy this file to app.yaml
>>>>> #  and edit as required
>>>>> #  See http://code.google.com/appengine/docs/python/config/appconfig.html
>>>>> #  and http://web2py.com/book/default/chapter/11?search=app.yaml
>>>>>
>>>>> application: ucsc-tutor-website
>>>>> version: 1
>>>>> api_version: 1
>>>>>
>>>>> # use these lines for Python 2.7
>>>>> # upload app with: appcfg.py update web2py (where 'web2py' is web2py's 
>>>>> root directory)
>>>>> #
>>>>> runtime: python27
>>>>> threadsafe: true    # true for WSGI & concurrent requests (Python 2.7 
>>>>> only)
>>>>>
>>>>> default_expiration: "1m"   # for static files
>>>>>
>>>>> handlers:
>>>>>
>>>>> # Warning! Static mapping - below - isn't compatible with 
>>>>> # the parametric router's language logic. 
>>>>> # You cannot use them together.
>>>>>
>>>>> - url: /(.+?)/static/_(\d+\.\d+\.\d+)\/(.+)
>>>>>   static_files: applications/\1/static/\3
>>>>>   upload: applications/(.+?)/static/(.+)
>>>>>   secure: optional
>>>>>   expiration: "365d"
>>>>>
>>>>> - url: /(.+?)/static/(.+)
>>>>>   static_files: applications/\1/static/\2
>>>>>   upload: applications/(.+?)/static/(.+)
>>>>>   secure: optional
>>>>>
>>>>> - url: /favicon.ico
>>>>>   static_files: applications/welcome/static/favicon.ico
>>>>>   upload: applications/welcome/static/favicon.ico
>>>>>
>>>>> - url: /robots.txt
>>>>>   static_files: applications/welcome/static/robots.txt
>>>>>   upload: applications/welcome/static/robots.txt
>>>>>
>>>>> - url: .*
>>>>>   script: gaehandler.wsgiapp    # WSGI (Python 2.7 only)
>>>>>   secure: optional
>>>>>
>>>>> admin_console:
>>>>>   pages:
>>>>>   - name: Appstats
>>>>>     url: /_ah/stats
>>>>>
>>>>> skip_files: |
>>>>>  ^(.*/)?(
>>>>>  (app\.yaml)|
>>>>>  (app\.yml)|
>>>>>  (index\.yaml)|
>>>>>  (index\.yml)|
>>>>>  (#.*#)|
>>>>>  (.*~)|
>>>>>  (.*\.py[co])|
>>>>>  (.*/RCS/.*)|
>>>>>  (\..*)|
>>>>>  (applications/examples/.*)|
>>>>>  ((examples|welcome)\.(w2p|tar))|
>>>>>  (applications/.*?/(cron|databases|errors|cache|sessions)/.*)|
>>>>>  ((logs|scripts)/.*)|
>>>>>  (anyserver\.py)|
>>>>>  (web2py\.py)|
>>>>>  ((cgi|fcgi|modpython|wsgi)handler\.py)|
>>>>>  (epydoc\.(conf|css))|
>>>>>  (httpserver\.log)|
>>>>>  (logging\.example\.conf)|
>>>>>  (route[rs]\.example\.py)|
>>>>>  (setup_(app|exe)\.py)|
>>>>>  (splashlogo\.gif)|
>>>>>  (parameters_\d+\.py)|
>>>>>  (options_std.py)|
>>>>>  (gluon/tests/.*)|
>>>>>  (gluon/rocket\.py)|
>>>>>  (contrib/(gateways|markdown|memcache|pymysql)/.*)|
>>>>>  (contrib/(populate|taskbar_widget)\.py)|
>>>>>  (google_appengine/.*)|
>>>>>  (.*\.(bak|orig))|
>>>>>  )$
>>>>>
>>>>> builtins:
>>>>> - remote_api: on
>>>>> - appstats: on
>>>>> - admin_redirect: on
>>>>> - deferred: on
>>>>>
>>>>>
>>>>>
>>>>> Here's my *gaehandler.py*:
>>>>>
>>>>> #!/usr/bin/env python
>>>>> # -*- coding: utf-8 -*-
>>>>>
>>>>> """
>>>>> This file is part of the web2py Web Framework
>>>>> Copyrighted by Massimo Di Pierro <mdip...@cs.depaul.edu>
>>>>> License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
>>>>> """
>>>>>
>>>>> ##############################################################################
>>>>> # Configuration parameters for Google App Engine
>>>>> ##############################################################################
>>>>> LOG_STATS = False      # web2py level log statistics
>>>>> APPSTATS = True         # GAE level usage statistics and profiling
>>>>> DEBUG = False          # debug mode
>>>>> #
>>>>> # Read more about APPSTATS here
>>>>> #   
>>>>> http://googleappengine.blogspot.com/2010/03/easy-performance-profiling-with.html
>>>>> # can be accessed from:
>>>>> #   http://localhost:8080/_ah/stats
>>>>> ##############################################################################
>>>>> # All tricks in this file developed by Robin Bhattacharyya
>>>>> ##############################################################################
>>>>>
>>>>>
>>>>> import time
>>>>> import os
>>>>> import sys
>>>>> import logging
>>>>> import cPickle
>>>>> import pickle
>>>>> import wsgiref.handlers
>>>>> import datetime
>>>>>
>>>>> path = os.path.dirname(os.path.abspath(__file__))
>>>>>
>>>>> # os.chdir(path) ?
>>>>>
>>>>> if not os.path.isdir('applications'):
>>>>>     raise RuntimeError('Running from the wrong folder')
>>>>>
>>>>> sys.path = [path] + [p for p in sys.path if not p == path]
>>>>>
>>>>> sys.modules['cPickle'] = sys.modules['pickle']
>>>>>
>>>>>
>>>>> from gluon.settings import global_settings
>>>>> from google.appengine.ext import webapp
>>>>> from google.appengine.ext.webapp.util import run_wsgi_app
>>>>>
>>>>>
>>>>> global_settings.web2py_runtime_gae = True
>>>>> global_settings.db_sessions = True
>>>>> if os.environ.get('SERVER_SOFTWARE', '').startswith('Devel'):
>>>>>     (global_settings.web2py_runtime, DEBUG) = \
>>>>>         ('gae:development', True)
>>>>> else:
>>>>>     (global_settings.web2py_runtime, DEBUG) = \
>>>>>         ('gae:production', False)
>>>>>
>>>>>
>>>>> import gluon.main
>>>>>
>>>>>
>>>>> def log_stats(fun):
>>>>>     """Function that will act as a decorator to make logging"""
>>>>>     def newfun(env, res):
>>>>>         """Log the execution time of the passed function"""
>>>>>         timer = lambda t: (t.time(), t.clock())
>>>>>         (t0, c0) = timer(time)
>>>>>         executed_function = fun(env, res)
>>>>>         (t1, c1) = timer(time)
>>>>>         log_info = """**** Request: %.2fms/%.2fms (real time/cpu time)"""
>>>>>         log_info = log_info % ((t1 - t0) * 1000, (c1 - c0) * 1000)
>>>>>         logging.info(log_info)
>>>>>         return executed_function
>>>>>     return newfun
>>>>>
>>>>>
>>>>> logging.basicConfig(level=logging.INFO)
>>>>>
>>>>>
>>>>> def wsgiapp(env, res):
>>>>>     """Return the wsgiapp"""
>>>>>     env['PATH_INFO'] = env['PATH_INFO'].decode('latin1').encode('utf8')
>>>>>
>>>>>     #when using the blobstore image uploader GAE dev SDK passes these as 
>>>>> unicode
>>>>>     # they should be regular strings as they are parts of URLs
>>>>>     env['wsgi.url_scheme'] = str(env['wsgi.url_scheme'])
>>>>>     env['QUERY_STRING'] = str(env['QUERY_STRING'])
>>>>>     env['SERVER_NAME'] = str(env['SERVER_NAME'])
>>>>>
>>>>>     #this deals with a problem where GAE development server seems to 
>>>>> forget
>>>>>     # the path between requests
>>>>>     if global_settings.web2py_runtime == 'gae:development':
>>>>>         gluon.admin.create_missing_folders()
>>>>>
>>>>>     web2py_path = global_settings.applications_parent  # backward 
>>>>> compatibility
>>>>>
>>>>>     return gluon.main.wsgibase(env, res)
>>>>>
>>>>>
>>>>> if LOG_STATS or DEBUG:
>>>>>     wsgiapp = log_stats(wsgiapp)
>>>>>
>>>>>
>>>>> def main():
>>>>>     """Run the wsgi app"""
>>>>>     run_wsgi_app(wsgiapp)
>>>>>
>>>>> if __name__ == '__main__':
>>>>>     main()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> And here's *main.py* (generated by PyCharm):
>>>>>
>>>>> #!/usr/bin/env python
>>>>> #
>>>>> # Copyright 2007 Google Inc.
>>>>> #
>>>>> # Licensed under the Apache License, Version 2.0 (the "License");
>>>>> # you may not use this file except in compliance with the License.
>>>>> # You may obtain a copy of the License at
>>>>> #
>>>>> #     http://www.apache.org/licenses/LICENSE-2.0
>>>>> #
>>>>> # Unless required by applicable law or agreed to in writing, software
>>>>> # distributed under the License is distributed on an "AS IS" BASIS,
>>>>> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>>>>> # See the License for the specific language governing permissions and
>>>>> # limitations under the License.
>>>>> #
>>>>> import webapp2
>>>>>
>>>>> class MainHandler(webapp2.RequestHandler):
>>>>>     def get(self):
>>>>>         self.response.write('Hello world!')
>>>>>
>>>>> app = webapp2.WSGIApplication([
>>>>>     ('/', MainHandler)
>>>>> ], debug=True)
>>>>>
>>>>>
>>>>>
>>>>> Any help would be greatly appreciated! I need this deployed by 
>>>>> Wednesday (12/9)
>>>>>
>>>> -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/web2py/tcjBN0qZQ7k/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> web2py+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to