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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM