天了噜!写autopy的人能不能用点心!

今天装Spynner,依赖于autopy,然而第一遍装的时候就是报错,pip了后发现主要错误是在error: use of undeclared identifier XXXX,一堆。。。

然后没办法手动安装呗,去找原文件,build的时候还是一样的错误,去stackoverflow查查,发现是:

all 9 errors are coming from one file: src/screengrab.c This file has not been updated to the latest version of OpenGL and there are deprecated methods. On the autopy github repo there is a bug reported for this here. The fix/hack suggested there is to add the line: #include

坑爹呢这是!还好stackoverflow有大神,好,加上一句再编译,成功,安装成功,以为结束了,但是发现不能import,得到结果是找不到模块alert。好吧,看看都装了些什么,发现alert.so静静地躺在packages里面,怀疑是不能导入so文件(已经开始怀疑作者),找到了导入so文件的方法:


import ctypes
c = ctypes.cdll.LoadLibrary('xxx.so')

好吧,虽然要改__init__,也只能这样了,正要改,又瞄了一眼文件描述:

When building from source, make sure to cd out of the autopy directory before attempting to use AutoPy or else it may fail on an ImportError due to Python's relative imports.

淦!

顺便做个小笔记,spynner不支持中文,出来的都是?,解决方法:

把site-packages\spynner\browser.py 下的函数 (大概是477行)
def _get_html(self):
return six.u(self.webframe.toHtml())
改成下面这样
def _get_html(self):
return unicode(self.webframe.toHtml().toUtf8(), 'utf-8', 'ignore')

你可能感兴趣的:(天了噜!写autopy的人能不能用点心!)