original source : http://stackoverflow.com/questions/2710861/how-to-import-modules-in-google-app-engine
Simply place the short_url.py
file in your app’s directory.
Sample App Engine project:
myapp/
app.yaml
index.yaml
main.py
short_url.py
views.py
And in views.py
(or wherever), you can then import like so:
import short_url
For more complex projects, perhaps a better method is to create a directory especially for dependencies; say lib
:
myapp/
lib/
__init__.py
short_url.py
app.yaml
index.yaml
main.py
views.py
from lib import short_url
Edit #2:
Apologies, I should have mentioned this earlier. You need modify your path, thanks to Nick Johnson for the following fix.
Ensure that this code is run before starting up your app; something like this:
import os
import sys
def fix_path():
# credit: Nick Johnson of Google
sys.path.append(os.path.join(os.path.dirname(__file__), 'lib'))
def main():
url_map = [ ('/', views.IndexHandler),] # etc.
app = webapp.WSGIApplication(url_map, debug=False)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == "__main__":
fix_path()
main()
Edit3:
To get this code to run before all other imports, you can put the path managing code in a file of its own in your app’s base directory (Python recognizes everything in that directory without any path modifications).
And then you’d just ensure that this import
import fix_path
…is listed before all other imports in your main.py
file.
Here’s a link to full, working example in case my explanation wasn’t clear.