简介
V8是谷歌开源的JavaScript引擎, 使用C++开发,并在谷歌浏览器中使用. 它可以独立运行, 也可以嵌入到任何C++应用程序中.pyv8 是 Python 的对 v8 引擎一个封装.
安装
1. 安装 scons, python 的devel, boost 以及 boost for python 的 devel
Ubuntu:
sudo apt-get install scons libboost-dev libboost-thread-dev \ libboost-system-dev \ python-dev libboost-python-dev
Centos:
yum install scons python-devel boost-devel boost-python -y
2. 签出 v8 和 pyv8
svn checkout http://v8.googlecode.com/svn/trunk/ v8 svn checkout http://pyv8.googlecode.com/svn/trunk/ pyv8
3. 安装 PyV8
设置 V8_HOME 环境变量为你签出v8代码的目录, 是编译 PyV8的关键步骤. 这将允许PyV8增补(patch)V8将其编译成静态库,而不是默认的动态库.一旦你设置了这个你就可以使用标准的Python setup.py
命令来编译和安装PyV8了.
cd v8 export PyV8=`pwd` export V8_HOME=`pwd` cd ../pyv8 python setup.py build sudo python setup.py install
如果上述编译过程出错, 尝试一下操作
删除 pyv8 和 v8 目录, 执行
svn checkout -r 508 http://pyv8.googlecode.com/svn/trunk/ pyv8
修改 pyv8 目录下的文件 setup.py 文件, 将
V8_SVN_REVISION = None
改为
V8_SVN_REVISION = 14004
再执行
python setup.py build sudo python setup.py install
也许就可以通过了
测试 PyV8 的安装
新增以下 Python 脚本:
import PyV8 ctxt = PyV8.JSContext() ctxt.enter() func = ctxt.eval(""" (function(){ function hello(){ return "Hello world."; } return hello(); }) """) print func()
执行脚本,如果能看到输出 Hello world. 那么恭喜你, 你的 Python 就可以执行 JS 了.