Dad emailed me a few weeks ago asking what's the best way to assign 200 conference attendees to workshops, where there are 10 workshops each running 3 times at the conference (all at the same time). So I said I'd write an app that would take a csv file of (attendee, pref, ... prefN) and spit out a csv file of attendee, slot1, slot2, slot3). Easy, I got a naive version up on github a few days later.
Then I realised that it would be kind of a nightmare packaging this app to send to dad for him to try and run and then me remotely debugging for him, and getting him to use an updated version. So the obvious solution is to put it online and have him access it as a web app. This has the side benefit of getting me to actually try building a real website again.
Since I've been meaning to try setting stuff up on azure forever, and the app is arleady in python, I chose a python site on azure. Since I don't know what I'm doing I looked for a tutorial, and the first one suggested I use Django. I'm not actually quite clear on what Django will handle and what I could do without it, but for now I'll go with it. Following the tutorial at
http://www.windowsazure.com/en-us/develop/python/tutorials/web-sites-with-django/ was super straightforward, although since I already had a github account set up I didn't even need to do the deploy with git, when I chose github as my source control it started just auto deploying the latest copy of master. Unfortunately at the end, instead of their nice example page, I had a server error :/
Possibly it's because I renamed my app SimplySchedule instead of the suggested DjangoApplication - I may have missed a place that used the original name? Seems odd though.
Soo….an early opportunity to learn how to check out the logs and troubleshoot! Starting here: http://www.windowsazure.com/en-us/develop/net/best-practices/troubleshooting-web-sites/
So I set a new deployment credential to use with ftp and git - fails the first time when I try and get the ftp site, you need to use the domain as well. The logs don't seem that helpful:
Aha - having turned on detailed logging, I got this info
D:\Python27\python.exe - The FastCGI process exceeded
configured request timeout
Module
|
FastCgiModule
|
Notification
|
ExecuteRequestHandler
|
Handler
|
FastCGI_SimplySchedule_ccdfe77c-40fe-4aec-84e4-bb292a25a799
|
Error Code
|
0x80070102
|
Requested URL
|
|
Physical Path
|
C:\DWASFiles\Sites\SimplySchedule\VirtualDirectory0\site\wwwroot
|
Logon Method
|
Anonymous
|
Logon User
|
Anonymous
|
So, it is at least getting to the site and running the fastcgi handler is setup…
I went and doublechecked all the config options, and restarted the site. When I tried visiting it again I got this:
ImportError at /
cannot import name sql
Request Method:
|
GET
|
Request URL:
|
|
Django Version:
|
1.4
|
Exception Type:
|
ImportError
|
Exception Value:
|
cannot import name
sql
|
Exception Location:
|
D:\home\site\wwwroot\site-packages\django\db\models\deletion.py
in <module>, line 5
|
Python Executable:
|
D:\Python27\python.exe
|
Python Version:
|
2.7.3
|
Python Path:
|
['D:\\Python27\\Scripts',
'D:\\home\\site\\wwwroot\\SimplySchedule', 'D:\\home\\site\\wwwroot\\site-packages', 'D:\\Windows\\SYSTEM32\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages'] |
Server time:
|
Tue, 21 May 2013
06:19:54 +0000
|
Environment:
Request Method: GET
Request URL: http://simplyschedule.azurewebsites.net/
Django Version: 1.4
Python Version:
2.7.3
Installed
Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',a
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles')
Installed
Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File
"D:\home\site\wwwroot\site-packages\django\core\handlers\base.py" in
get_response
89. response =
middleware_method(request)
File
"D:\home\site\wwwroot\site-packages\django\contrib\sessions\middleware.py"
in process_request
10.
engine = import_module(settings.SESSION_ENGINE)
File
"D:\home\site\wwwroot\site-packages\django\utils\importlib.py" in
import_module
35.
__import__(name)
File
"D:\home\site\wwwroot\site-packages\django\contrib\sessions\backends\db.py"
in <module>
77. from django.contrib.sessions.models
import Session
File
"D:\home\site\wwwroot\site-packages\django\contrib\sessions\models.py"
in <module>
1. from django.db import models
File
"D:\home\site\wwwroot\site-packages\django\db\models\__init__.py" in
<module>
5. from django.db.models.query import Q
File
"D:\home\site\wwwroot\site-packages\django\db\models\query.py" in
<module>
13. from django.db.models.deletion import
Collector
File
"D:\home\site\wwwroot\site-packages\django\db\models\deletion.py" in
<module>
5. from django.db.models import signals, sql
Exception Type:
ImportError at /
Exception Value:
cannot import name sql
Welp, after a little blind web searching, I can't find anyone else hitting this error - I think. There is a mention of someone else who went through the tutorial and saw a 500 internal server error in a comment on this Stack Overflow question,: http://stackoverflow.com/questions/10990706/azure-free-website-with-python-django-not-running/15757329#15757329
But a 500 error could be lots of things, as shown by this question: http://stackoverflow.com/questions/12554725/azure-sdk-django-visual-studio-2012-publish-to-azure-succeeds-but-i-get-5?rq=1
So, I asked my question at the disqus comments on the tutorial - will wait a day for a response before going to Stack Overflow I guess
No comments:
Post a Comment