Google App Engine 找不到 Python 模块
我正在尝试用Python写一个Google App Engine的程序,但在部署的时候,日志里总是显示一个错误,内容是:
ImportError: No module named pygeocoder
当我在用来放App Engine程序的文件夹里,输入“import pygeocoder”在Python命令行中时,这个命令是可以正常工作的。我对这些还不太熟悉,不太确定该怎么导入这个模块。以下是我的代码:
import webapp2
import cgi
import jinja2
import os
import time
from pygeocoder import Geocoder
jinja_environment = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainPage(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render())
class Map(webapp2.RequestHandler):
def post(self):
line = cgi.escape(self.request.get('line_name'))
self.getPositions(line)
def getPositions(self, line):
current=str(time.mktime(time.gmtime())) #Gets current time for web feed
stations = urllib2.urlopen('http://webservices.nextbus.com/service/publicXMLFeed?command=vehicleLocations&a=sf-muni&r=' + line + '&t='+current)
tree=ET.parse(stations)
root=tree.getroot()
vehid=list()
latitude=list()
longitude=list()
head=list()
spd=list()
address=list()
for info in root.iter('vehicle'):
veh_id=info.get('id')
lat =float(info.get('lat'))
lon =float(info.get('lon'))
address1=Geocoder.reverse_geocode(lat, lon)
street=str(address1[0])
heading = info.get('heading')
speed=info.get('speedKmHr')
vehid.append(veh_id)
latitude.append(lat)
longitude.append(lon)
head.append(heading)
spd.append(speed)
address.append(street)
template_values={
'latitude': latitude,
'longitude': longitude,
'heading': head,
'speed': spd,
'address':address,
'vehid': vehid
}
template = jinja_environment.get_template('map.html')
self.response.out.write(template.render(template_values))
app = webapp2.WSGIApplication([('/', MainPage),
('/map', Map)],
debug=True)
这是我的app.yaml文件:
application: munipositions
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: munipositions.app
libraries:
- name: jinja2
version: latest
1 个回答
0
谢谢,我只需要把它放在我的应用程序目录里,现在可以用了。