2016.5.16更新: 提供PyV8 for python2.7 的window安装包网盘下载
这几天需要在使用
PyV8
来进行python
与javascript
的交互。之前在window
下安装过,也没有遇到什么问题。 结果这次在Ubuntu
安装遇到了不少坑--主要是网上的办法都不可行,不知道为啥。最终折腾了一晚上,终于好了。
windows下的安装
在windows下安装要简单很多,如果有了c++
环境之后,只需要在pyv8下载(貌似只有python2.7)下载适合自己系统版本的exe
文件即可,然后直接安装就好了,相对来说简单一些
- 如果上不去google, 可以用下面的网盘地址: PyV8 for python2.7
在Ubuntu下安装
安装依赖
首先安装依赖:Boost
, 这一步网上的大部分教程都差不多,也是必须的; 1
2
3
4sudo apt-get install scons
sudo apt-get install libboost-dev libboost-thread-dev
sudo apt-get install libboost-system-dev libboost-python-devsvn
checkout出V8,PyV8的代码,然后再设置什么V8的目录为V8_HOME
最后在编译PyV8
;先不说能不能使用svn
迁出,(反正我翻墙都没有迁出来),后来去google.code网站上, 下载了源代码,结果编译期间出各种错误,根本没办法执行。 还有一些直接使用pip
安装的教程,也是报各种错,缺少这个啦,缺少那个啦。 于是就想直接找到二进制文件,直接拷到python的包目录得了。结果这条路还算顺畅!最终比较轻松的安装成功了。 二进制文件googlecode官网有,有人在github上也提供了很全面的安装文件https://github.com/emmetio/pyv8-binaries 找到适合你机器的版本下载. 解压出来应该有如下两个文件:一个源码,一个二进制文件。一般Python的第三方包有这俩文件就够了. 1
2PyV8.py
_PyV8.so1
2cd pyv8 //进入解压后的目录
sudo cp * /usr/lib/python2.7/dist-packages/import PyV8
结果报以下的一个错误: 1
ImportError: libboost_python_py27.so.1.54.0: cannot open shared object file: No such file or directory
libboost_python_py27.so.1.54.0
1
2shomy@LiuPC:blog$ find /usr/lib/ -name libboost_python-py27.so.1.54.0
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.54.0LD_LIBRARY_PATH
上,因为python寻找链接库的时候,是从该路径里面找的。 然而我echo $LD_LIBRARY_PATH
却啥都没有,只要把上面的路径加入到环境变量就可以吧。--于是在.bashrc
最后加入了一行:(路径可能不一致,请根据自己的实际情况添加) 1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu
source ~/.bashrc
重载一下就好了。再一次import PyV8
正常! 执行下面的测试代码: 1
2
3
4
5
6
7
8
9
10
11
12
13import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval("""
(function(){
function hello(){
return "Hello world.";
}
return hello();
})
""")
print func()Hello World
就说明安装成功了。可以去模拟js代码了~~~