PyV8 安装指南

说明

PyV8 是 V8引擎的 Python 胶水层,可实现Python与JavaScript的交互。

安装

SVN安装

1
sudo apt-get install subversion

安装相关依赖, scons, python 的devel, boost 以及 boost for python 的 devel

1
2
3
sudo apt-get install scons libboost-dev libboost-thread-dev \
libboost-system-dev \
python-dev libboost-python-dev

获取源代码

1
2
svn checkout http://v8.googlecode.com/svn/trunk/ v8
svn checkout http://pyv8.googlecode.com/svn/trunk/ pyv8

配置

设置V8环境变量

1
2
cd v8
export V8_HOME=`pwd`

编译

1
2
3
cd ../pyv8
sudo python setup.py build
sudo python setup.py install

例程

1
2
3
4
5
6
7
8
9
10
11
12
13
import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval("""
(function(){
function hello(){
return "Hello world.";
}
return hello();
})
""")
print func()

遇到的错误

1
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-xNdrm1/pyv8/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-5RbJ4C-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-xNdrm1/pyv8

参考资料

[1] PyV8 安装教程
[2] 在Python中执行JavaScript
[3] python 用于网站抓取 登录 发布的模块介绍
[4] 当爬虫遇到JavaScript
[5] Python 爬虫如何获取 JS 生成的 URL 和网页内容
[6] PyV8试用