• Python 执行js的2种解决方案-乾颐堂


    第1种方案

    SpiderMonkey是Mozilla项目的一部分,是一个用C语言实现的JavaScript脚本引擎, 该引擎分析、编译和执行脚本,根据JS数据类型和对象的需要进行内存分配及释放操作;利用该引擎可以让你的应用程序具有解释JavaScript脚本的能力。

    要想使用spidermonkey得先安装,方法如下:

    cd /home/linuxany.com/

    wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz -O- | tar xvz

    cd js/src

    make -f Makefile.ref

    mkdir -p /usr/include/smjs/ -v

    cp *.{h,tbl} /usr/include/smjs/ -v

    cd Linux_All_DBG.OBJ

    cp *.h /usr/include/smjs/ -v

    mkdir -p /usr/local/{bin,lib}/ -v

    cp js /usr/local/bin/ -v

    cp libjs.so /usr/local/lib/ -v

    以上安装完成后,运行/usr/local/bin/js 就应该可以启动js解释运行引擎了.

    python使用举例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # coding:utf-8
    import os
    import tempfile
    def call_js(js):
        f=tempfile.mktemp('sd', 'linuxany', '/tmp')
        f2=tempfile.mktemp('sd', 'linuxany', '/tmp')
                         
        fp=open(f,'w')
        fp.write(js)
        fp.close()
                         
        cmd="/usr/local/bin/js  %s > %s" % (f,f2)
                         
        os.system(cmd)
        result=open(f2).read()
        print result
    if __name__ == "__main__":
        code='''
        function dF(s,n){
            n=parseInt(n);
            var s1=unescape(s.substr(0,n)+s.substr(n+1,s.length-n-1));
            var t='';
            for(var i=0;i第2种方案Python-Spidermonkey 这个Python模块允许执行Javascript相关功能,是python与javascript之间进行操作的桥梁,javascript的类,对象和函数都可以在Python中调用。它大量借鉴了克拉斯Jacobssen的JavaScript Perl模块,而这又是Mozilla的PerlConnect Perl的结合为基础。安装:svn checkout http://python-spidermonkey.googlecode.com/svn/trunk/ python-spidermonkey-read-only下载完后,先运行python setup.py build然后运行python setup.py install,同时需要安装Pyrex模块,一个支持python和C语言混编的模块。装完后就用python其他模块一样使用即可。
     

    www.qytang.com/
    http://www.qytang.com/cn/list/29/
    http://www.qytang.com/cn/list/28/358.htm
    http://www.qytang.com/cn/list/41/
    http://www.qytang.com/cn/list/37/
    http://www.qytang.com/cn/list/46/
    http://www.qytang.com/cn/page/19.htm
    http://www.qytang.com/cn/list/32/
    http://www.qytang.com/cn/list/28/
    http://www.qytang.com/cn/list/25/
    http://www.qytang.com/cn/list/28/625.htm
    http://www.qytang.com/cn/list/28/612.htm
    http://www.qytang.com/cn/list/28/611.htm

  • 相关阅读:
    CV 之基于特征的配准(3)—— 内参数标定
    Lecture18_渲染前沿话题(Advanced Topics in Rendering)_GAMES101 课堂笔记
    乱七八糟介绍一款文献检索网站,web of science
    CV 之基于特征的配准(2)—— 姿态估计
    CV 之基于特征的配准(1)—— 2D 和 3D 特征的配准
    图像分割(2)之匹配标准、匹配策略及分割评测问题
    人体姿态估计的过去、现在和未来
    Python真题练习:1041-考试座位号、1042-字符统计
    Python+OpenCV实现图像医学处理
    Python+OpenCV实现图像缺陷检测
  • 原文地址:https://www.cnblogs.com/qytang/p/5580922.html
Copyright © 2020-2023  润新知