के साथ Google App Engine पर ImportError मैं पृष्ठों को पार्स करने के लिए lxml का उपयोग करता हूं। जब मैं अनुप्रयोग इंजन एसडीके यह काम करता है, लेकिन जब मैं बादल में अपने आवेदन की तैनाती, मैं एक messege यहाँ प्राप्त के साथ अपने कोड चलाएँ:एलएक्सएमएल
Traceback (most recent call last): File "/base/data/home/apps/s~testparsercyka/1.356245976008257055/handler_info.py", line 2, in import lxml.html File "/base/data/home/apps/s~testparsercyka/1.356245976008257055/lxml/html/init.py", line 12, in from lxml import etree ImportError: cannot import name etree
कोड:
app.yaml
application: testparsercyka
version: 1
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /.*
script: handler_info.py
libraries:
- name: lxml
version: "2.3" # I thought this would allow me to use lxml.etree
handler_info.py
import lxml
import lxml.html
import urllib
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
import os
import cgi
class MainPage(webapp.RequestHandler):
def get(self):
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class Handlers(webapp.RequestHandler):
def post(self):
#url = "http://habrahabr.ru/"
url = str(self.request.get('url'))
url_temp = url
teg = str(self.request.get('teg'))
attr = str(self.request.get('attr'))
n0 = str(self.request.get('n0'))
n = str(self.request.get('n'))
a = attr.split(':')
for i in range(int(n0),int(n)):
url = url.format(str(i))
self.response.out.write(url)
html = urllib.urlopen(url).read()
doc = lxml.html.document_fromstring(html)
url = url_temp
self.getn(doc.getroottree().getroot(),teg,a)
def getn(self,node,teg,a):
if ((node.tag==teg) and (node.get(a[0])==a[1])):
#print node.tag,node.keys()
self.response.out.write(node.text)
self.response.out.write('
')
for n in node:
self.getn(n,teg,a)
application = webapp.WSGIApplication([('/', MainPage),('/sign',Handlers)],debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
कोई विचार क्यों यह काम नहीं करता है?
हाय आर्टेम, मुझे एक समान समस्या है, सिवाय इसके कि मुझे एसडीके में आयात त्रुटि मिलती है, इसलिए मैंने अभी तक Google के सर्वर पर कोशिश नहीं की है। क्या आपको अपने कंप्यूटर पर lxml इंस्टॉल करना है? मुझे आश्चर्य है कि यह मेरी समस्या है, लेकिन मुझे लगता है कि यह एसडीके के साथ आएगा ... – Stin