Ubuntu下安装PyV8

 更新时间:2016年03月13日 15:35:25   投稿:hebedich  
本文给大家简单介绍了下在ubuntu下安装pyv8的方法和注意事项,非常的实用,有需要的小伙伴可以参考下

这几天需要在使用PyV8来进行python与javascript的交互。之前在window下安装过,直接使用的exe安装的,也没有遇到什么问题。
结果这次在Ubuntu安装遇到了不少坑--主要是网上的办法都不可行,不知道为啥。最终折腾了一晚上,终于好了。

安装依赖

首先安装依赖:Boost, 这一步网上的大部分教程都差不多,也是必须的;

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第三方包的目录里面就好,比如我的是:

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 正常!

执行下面的测试代码:

import PyV8

ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval("""
  (function(){
    function hello(){
      return "Hello world.";
    }
    return hello();
  })
""")
print func()

执行输出Hello World 就说明安装成功了。可以去模拟登录了~~~

相关文章

  • Python人工智能实战之对话机器人的实现

    Python人工智能实战之对话机器人的实现

    本文将通过Python开发一个可以讲笑话的机器人,可以自由定制功能,想讲几个笑话就讲几个笑话。文中的示例代码讲解详细,感兴趣的可以动手试一试
    2022-02-02
  • Pyqt QImage 与 np array 转换方法

    Pyqt QImage 与 np array 转换方法

    今天小编就为大家分享一篇Pyqt QImage 与 np array 转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python求解数组中两个字符串的最小距离

    python求解数组中两个字符串的最小距离

    这篇文章主要为大家详细介绍了python求解数组中两个字符串的最小距离,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Python中使用Pillow库生成立体文字的图像

    Python中使用Pillow库生成立体文字的图像

    在众多Python库中,Pillow库以其丰富的功能和易用性在图像处理领域脱颖而出,Pillow是Python领域中最基础且常用的图像处理库之一,,本文将详细介绍如何使用Python自动生成带有立体效果的文字,我们会逐步讲解输入文字、选择字体和颜色,并应用立体效果来生成最终图
    2025-03-03
  • python使用PyPDF2 和 pdfplumber操作PDF文件

    python使用PyPDF2 和 pdfplumber操作PDF文件

    本文主要介绍了Python中用于操作PDF的两个库:PyPDF2和pdfplumber,下面就来具体介绍一下两个库的使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • 详解python文件的操作和异常的处理

    详解python文件的操作和异常的处理

    这篇文章主要为大家介绍了python文件的操作和异常的处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python使用MoviePy实现编辑音视频并添加字幕

    Python使用MoviePy实现编辑音视频并添加字幕

    MoviePy是一个用于视频编辑的Python模块,它可被用于一些基本操作,本文主要介绍了如何使用编辑音视频并添加字幕,感兴趣的小伙伴可以了解下
    2024-01-01
  • python利用Tesseract识别验证码的方法示例

    python利用Tesseract识别验证码的方法示例

    无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块Tesseract,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 如何利用Python批量重命名文件夹中的文件

    如何利用Python批量重命名文件夹中的文件

    这篇文章主要介绍了如何利用Python批量重命名文件夹中的文件,保留文件名的前缀和扩展名,通过指定分隔符分割文件名,代码展示了如何遍历文件夹中的文件,提取并重组文件名,最后使用os.rename函数进行重命名,需要的朋友可以参考下
    2024-12-12
  • Python计算公交发车时间的完整代码

    Python计算公交发车时间的完整代码

    这篇文章主要介绍了Python计算公交发车时间的完整代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论