用python执行 js代码__来自脚本之家

""python

github地址 :https://github.com/emmetio/pyv8-binarieslinux

""git

 

安装依赖github

首先安装依赖:Boost, 这一步网上的大部分教程都差很少,也是必须的;bash

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

安装PyV8
svn

网上的大部分教程均是使用svncheckout出V8,PyV8的代码,而后再设置什么V8的目录为V8_HOME最后在编译PyV8;先不说能不能使用svn迁出,(反正我FQ都没有迁出来),后来去google.code网站上, 下载了源代码,结果编译期间出各类错误,根本没办法执行。 测试

还有一些直接使用pip安装的教程,也是报各类错,缺乏这个啦,缺乏那个啦。
因而就想直接找到二进制文件,直接拷到python的包目录得了。结果这条路还算顺畅!最终比较轻松的安装成功了。
二进制文件googlecode官网有,有人在github上也提供了很全面的二进制安装文件https://github.com/emmetio/pyv8-binaries 找到适合你机器的版本下载.网站

解压出来应该有以下两个文件:一个源码,一个二进制文件。通常Python的第三方包有这俩文件就够了,google

PyV8.pyspa

_PyV8.so
而后把这两个文件拷到你的python第三方包的目录里面就好,好比个人是:

?
1
2
cd pyv8 // 进入解压后的目录
sudo cp * /usr/lib/python2 .7 /dist-packages/

以后尝试导入import PyV8结果报如下的一个错误:

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

shomy@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.0

果真有这个连接库,那为啥检测不到呢,问题就出在环境变量LD_LIBRARY_PATH上,由于python寻找连接库的时候,是从该路径里面找的。

然而我echo $LD_LIBRARY_PATH却啥都没有,只要把上面的路径加入到环境变量就能够吧。--因而在.bashrc最后加入了一行:(路径可能不一致,请根据本身的实际状况添加)

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
13
import PyV8
 
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt. eval ( """
   (function(){
     function hello(){
       return "Hello world.";
     }
     return hello();
   })
""" )
print func()

执行输出Hello World 就说明安装成功了。能够去模拟登陆了~~~

相关文章
相关标签/搜索