How to modify pythonpath for a WSGI application in alwaysdata.net


Question

I've created a small Python web application using Flask, and I wanted to host it in alwaysdata.net. I already installed mod_wsgi in my subdomain, but when I try to import the main module of my app it fails because it can't be found. All the files are in the /www folder.

Should I place my files somewhere else? I tried including the current working directory in my .wsgi file but it still doesn't work.

For reference, my .wsgi looks like this:

import os
import sys
sys.path.append(os.getcwd())
from ngl import app as application

My application is called ngl.py and it's in the same folder as the .wsgi file.

Thanks!

1
4
6/30/2011 5:10:59 PM

Accepted Answer

The current working directory under mod_wsgi will not be where the WSGI script is located, so you shouldn't be using os.getcwd(). See:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory

To do what you want, use:

sys.path.append(os.path.dirname(__file__))

This is calculating the directory the WSGI script file is in by getting the directory path component of the name of the WSGI script file as recorded in __file__ variable.

12
6/29/2011 11:44:20 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon