Я не понимаю, как код, который вы показали, может быть неудачным для вас. Пытаясь воспроизвести вашу проблему, я построил следующий урезанный проект:
$ ls -lR
total 32
-rw-r--r-- 1 aleax staff 0 Jun 10 21:20 __init__.py
drwxr-xr-x 4 aleax staff 136 Jun 10 21:28 a
-rw-r-----@ 1 aleax staff 107 Jun 10 21:27 app.yaml
-rw-r--r-- 1 aleax staff 21 Jun 10 21:20 cc.py
-rw-r--r-- 1 aleax staff 471 Jun 10 21:25 index.yaml
-rw-r--r-- 1 aleax staff 75 Jun 10 21:20 main.py
./a:
total 8
-rw-r--r-- 1 aleax staff 0 Jun 10 21:20 __init__.py
-rw-r--r-- 1 aleax staff 130 Jun 10 21:20 aa.py
Вот непустые файлы Python:
$ for f in main.py cc.py a/aa.py; do echo "File: $f"; cat $f; echo; done
File: main.py
print 'Content-Type: text/plain'
print ''
print 'in main'
from a import aa
File: cc.py
print 'in cc'
c = 23
File: a/aa.py
import os, sys
dirname=os.path.dirname
path=os.path.join(dirname(dirname(__file__)))
sys.path.insert(0,path)
import cc
print cc.c
$
Он работает нормально, как и предсказывалось, показывая (как при локальном запуске в SDK, так и при запуске на серверах Google на appspot.com):
in main
in cc
23
Так что в некоторых частях вашего кода должна быть какая-то другая ошибка, которую вы нам не показываете. Пожалуйста, подтвердите это, воспроизведя этот крошечный проект и попробовав его как локально, так и на appspot.com, и сообщите нам, как он работает (или не работает ...?) Для вас.