Я сделал некоторые поиски по этой теме, наконец, получил некоторые пользовательские изменения
Для Workbench MySQL 6.3.7 Версия доступна графическая межфазная
Для версий ниже 6.3.7 прямые параметры недоступны, поэтому вам нужно перейти с командной строкой
Используя PyV8 , я могу это сделать. Тем не менее, я должен заменить document.write
на return
, потому что нет DOM и, следовательно, нет document
.
import PyV8
ctx = PyV8.JSContext()
ctx.enter()
js = """
function escramble_758(){
var a,b,c
a='+1 '
b='84-'
a+='425-'
b+='7450'
c='9'
document.write(a+c+b)
}
escramble_758()
"""
print ctx.eval(js.replace("document.write", "return "))
Или вы могли бы создать макет документа объекта
class MockDocument(object):
def __init__(self):
self.value = ''
def write(self, *args):
self.value += ''.join(str(i) for i in args)
class Global(PyV8.JSClass):
def __init__(self):
self.document = MockDocument()
scope = Global()
ctx = PyV8.JSContext(scope)
ctx.enter()
ctx.eval(js)
print scope.document.value
Еще одно решение, как PyV8, похоже, не поддерживается и зависит от старой версии libv8.
PyMiniRacer Это оболочка вокруг движка v8, и она работает с новой версией и активно поддерживается.
pip install py-mini-racer
from py_mini_racer import py_mini_racer
ctx = py_mini_racer.MiniRacer()
ctx.eval("""
function escramble_758(){
var a,b,c
a='+1 '
b='84-'
a+='425-'
b+='7450'
c='9'
return a+c+b;
}
""")
ctx.call("escramble_758")
И да, вы должны заменить document.write
на return
, поскольку другие предложили
Вы также можете использовать Js2Py, который написан на чистом питоне и способен выполнять и переводить javascript на python. Поддерживает практически весь JavaScript даже ярлыки, геттеры, сеттеры и другие редко используемые функции.
import js2py
js = """
function escramble_758(){
var a,b,c
a='+1 '
b='84-'
a+='425-'
b+='7450'
c='9'
document.write(a+c+b)
}
escramble_758()
""".replace("document.write", "return ")
result = js2py.eval_js(js) # executing JavaScript and converting the result to python string
Преимущества Js2Py включают переносимость и чрезвычайно легкую интеграцию с python (поскольку в основном JavaScript переводится на python).
Для установки:
pip install js2py
python setup.py install
, я получаю ОШИБКУ: вы должны установить V8_HOME в папку Google v8 или загрузить и построить его в первую очередь. & lt; code.google.com/p/v8/> ; i> При посещении этого проекта я вижу только 2 загрузки, benchmarks-v2.zip benchmarks-v1.zip. Ни у кого из них нет файлов py. – jerrymouse 13 April 2012 в 08:34