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

安装依赖

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


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

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

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

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

PyV8.py

_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 就说明安装成功了。可以去模拟登录了~~~

原文地址:https://www.cnblogs.com/Skyda/p/10428511.html

时间: 2024-10-11 16:23:03

用python执行 js代码__来自脚本之家的相关文章

pyv8的安装和使用:python中执行js代码

pyv8 的作用是在python中执行js代码,然后可以使用js里的变量等内容.python取得javascript里面的值.javascript取得python里面的值.python和javascript里面的函数交互 mac下的安装:pip install -e git://github.com/brokenseal/PyV8-OS-X#egg=pyv8 安装后有两个文件:一个PyV8.py  另一个_PyV8.so 下面示例是执行js文件 from pyv8 import PyV8 ctx

python 调用js代码

Python2   安装pyv8 pip install-egit://github.com/brokenseal/PyV8-OS-X#egg=pyv8 from pyv8 import PyV8 ctxt = PyV8.JSContext() ctxt.enter() # 创建一个jsContext对象并进入 ctxt.eval(js_str) # 执行js代码 接下来就可以使用这个ctxt来执行js脚本了.主要有两种用途: 1.调用js中的方法: #把strEnc绑定到js中的strEnc方

C# WinForm程序执行JS代码的多种方法

方法一 使用微软官方组件Interop.MSScriptControl 1.msscript.ocx下载的地址   http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=D05FCF37-4D9F-4769-9442-0BCEEF907033 或者点击此处下载 Interop.MSScriptControl.dll 2.项目中引用 msscript.ocx 或者 Interop.MSScriptCon

java中执行js代码

要在java中执行js代码,首先明白,java不支持浏览器本身的方法.支持自定义的js方法,否则会报错 先新建一个js文件:jsss.js 内容如下: function aa(a,b){ return a+b; } 然后在java中写代码: public class ZipTest { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineMa

JS学习十四天----服务器端执行JS代码

服务器端执行JS代码 话说,当今不在客户端使用JS代码才是稀罕事.由于web应用的体验越来越丰富,客户端用JS实现的逻辑也越来越多,这造成的结果就是某些几乎一致的逻辑需要在客户端和服务端各实现一遍,大牛们当然不甘心啊!幸运的是,我们可以在服务器端执行JS代码,谁让JS抱了一根大腿呢... 例如,如今在客户端使用JS进行验证已经是个标准,他可以有效避免用户在正常情况下提交错误的数据,增强用户体验.当然,服务器端的验证也是必不可少的,因为这才是安全性的体现.有些解决方案,,会在服务器端提供优先的验证

WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互

原文地址:http://www.cnblogs.com/feiyuhuo/p/5474790.html 方法一 使用微软官方组件Interop.MSScriptControl 1.msscript.ocx下载的地址   http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=D05FCF37-4D9F-4769-9442-0BCEEF907033 或者点击此处下载 Interop.MSScriptCon

Java执行js代码

在做项目中有时候需要用到Java调用js文件执行相应的方法 在JDK1.6添加了新的ScriptEngine类,允许用户直接执行js代码. import org.junit.Test; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; /** * @author ceshi * @Title: JunitTestJS * @Projec

iOS中UIWebView执行JS代码(UIWebView)

iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被人卡出来. 如网页中的这个导航 通常我们不需要WebView中的 导航栏,也不需要里面的返回上一级的交互.. 对WebView常用的另外一种功能就是对某个点击添加对用function实现JS调用OC的交互功能. 下面一一介绍: 1. UIWebView 调用JS代码 OC调用JS通常是,在webVi

A标签执行js 代码和跳转

5.执行JS代码: ????<a href="javascript:js代码">内容</a> ⑥.使用js来实现空链接 写法:<a href="javascript:void(0)"></a> ⑦.锚点 ????需要两个a链接搭配使用,第一个a链接设置锚点名,第二个a链接实现跳转功能. <a name="设置锚点的名称"></a> 用法1:同一页内实现跳转 示例: 设置锚点名