zoukankan      html  css  js  c++  java
  • 用python执行 js代码__来自脚本之家

    ""

    github地址 :https://github.com/emmetio/pyv8-binaries

    ""

    安装依赖

    首先安装依赖: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迁出,(反正我翻墙都没有迁出来),后来去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 就说明安装成功了。可以去模拟登录了~~~

  • 相关阅读:
    iOS UITextField限制输入长度
    SpringBoot 统一异常处理
    idea+springboot+freemarker热部署
    JAVA 实现链表
    mysql 添加新用户 赋予权限
    Spring MVC 集成 Redis集群
    js获取当前日期时间及其它操作
    MySQL Error Codes MYSQL的错误代码
    js数组 删除元素
    JS table form 序列化提交
  • 原文地址:https://www.cnblogs.com/Skyda/p/10428511.html
Copyright © 2011-2022 走看看