ホームページ  >  記事  >  バックエンド開発  >  Python で js を実行するための 2 つのソリューション

Python で js を実行するための 2 つのソリューション

大家讲道理
大家讲道理オリジナル
2016-11-08 10:12:411449ブラウズ

最初のオプション

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 *. 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 使用例:

# 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官方网站:http://code.google.com/p/python-spidermonkey/同时需要安装Pyrex模块,一个支持python和C语言混编的模块。装完后就用python其他模块一样使用即可。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。