我写了一些脚本,从我的帐户中收集了一些用户数据。我在Windows上运行它,一切正常。但是我无法在linux上运行它(没有gui)。
我安装了pyqt4,spynner和所有必需的依赖项。问题是:
对象没有属性findfirstelement。
据我了解,qwebframe对象无法使用浏览器。我安装了firefox和chromiumbafter,但它不起作用。我先安装浏览器了吗?我运行脚本inxvfb,因为我没有x11
xvfb-run python ... py
[UPD]
Traceback (most recent call last):
File "ebay_reports_retriver.py", line 392, in <module>
main()
File "ebay_reports_retriver.py", line 375, in main
downloadReportsFromPublishers.getReport()
File "ebay_reports_retriver.py", line 228, in getReport
downloadReportsFromPublishers.downloadReports(url,username,password, counter)
File "ebay_reports_retriver.py", line 183, in downloadReports
browser.wk_fill("input[type=text]", username)
File "/usr/lib/python2.6/site-packages/spynner/browser.py", line 1158, in wk_fill
element = self.webframe.findFirstElement(selector)
AttributeError: 'QWebFrame' object has no attribute 'findFirstElement'
rpm -qa | grep qt
qt-4.6.2-28.el6_5.x86_64
qt-sqlite-4.6.2-28.el6_5.x86_64
qt-x11-4.6.2-28.el6_5.x86_64
zlibrary-ui-qt-0.12.10-5.el6.x86_64
qtwebkit-2.1.1-1.el6.x86_64
qt-devel-4.6.2-28.el6_5.x86_64
qt-mobility-1.1.3-2.el6.x86_64
[UPD2]
Traceback (most recent call last):
File "ebay_reports_retriver.py", line 2, in <module>
import urllib , cookielib , spynner
File "/opt/python27/lib/python2.7/site-packages/spynner/__init__.py", line 2, in <module>
from .browser import *
File "/opt/python27/lib/python2.7/site-packages/spynner/browser.py", line 52, in <module>
from PyQt4 import QtCore
ImportError: /opt/python27/lib/python2.7/site-packages/PyQt4/QtCore.so: undefined symbol: PyUnicodeUCS4_FromUnicode
答案 0 :(得分:1)
Qt-4.6中引入了findFirstElement函数和QWebElement类。
然而,PyQt版本并不总是与Qt版本匹配,因此PyQt-4.6.2仅支持Qt-4.5。支持Qt-4.6的第一个版本是PyQt-4.7,它还增加了对QWebElement
类的支持。
所以看起来你只需要将PyQt升级到4.7或更高版本。