安装 pyv8 引擎的正确方法

安装 pyv8

简介

V8 是谷歌开源的 JavaScript 引擎,使用 C++ 开发,并在谷歌浏览器中使用。它可以独立运行,也可以嵌入到任何 C++ 应用程序中。pyv8 是 Python 对 v8 引擎的一个封装。

安装

通过源码编译安装

不推荐,经过一番尝试,安装了一系列编译需要的依赖包后,发现还是各种报错,所以自行编译坑太多了,我选择放弃。

通过 pip 安装

也不推荐,本质同使用源码编译安装一样,也是编译,只不过相关过程由 pip 来完成,安装了各种编译需要的依赖包和解决了一堆的错误后,还是没安装好,选择放弃。

通过二进制文件安装

如上所述,通过 pip 安装和下载源码编译安装都是坑。三种方式里,通过二进制文件安装操作起来是最轻松的一种,只需要下载好别人已经编译好的二进制文件,复制到 python 包对应的目录下即可使用。具体操作步骤如下:

  • 前往 github 页面,找到对应平台的二进制文件进行下载,pyv8 二进制文件 github 地址:https://github.com/emmetio/pyv8-binaries

    For Python 2:

    For Python 3:

  • 将下载的二进制压缩包解压至 pyv8 文件夹

    1
    2
    
    mkdir pyv8
    unzip pyv8-linux64.zip -d pyv8
    
  • 进入 pyv8 文件夹,复制解压出来的所有文件到对应的 python 包目录下

    1
    2
    3
    4
    5
    
    cd pyv8
    # ubuntu 使用以下命令进行复制
    sudo cp * /usr/lib/python2.7/dist-packages/
    # centos 使用以下命令进行复制
    sudo cp * /usr/lib/python2.7/site-packages/
    
  • 测试 pyv8 能否正常使用,创建一个 test.py 文件,写入以下内容

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    #!/usr/bin/env python
    import PyV8
    
    ctxt = PyV8.JSContext()
    ctxt.enter()
    func = ctxt.eval("""
        (function(){
            function hello(){
                return "Hello world.";
            }
            return hello();
        })
    """)
    print func()
    
  • 赋予文件执行权限并运行

    1
    2
    
    chmod +x test.py
    ./test.py
    

    如果能正常运行并输出 Hello world. 则说明 pyv8 能正常工作,安装无误。

参考链接

updatedupdated2019-02-242019-02-24