专栏首页python3关于libtorrent库的安装

关于libtorrent库的安装

前言: 前段时间由于工作需要,在Python的web开发框架Django中使用到了libtorrent这个C++扩展库来解析链接或种子数据.特了解和尝试了libtorrent库的安装.一般情况下,为了方便Python解释器版本和依赖库的管理,python项目都是工作在虚拟环境之下.在此情况下,便出现了一个挺严重的问题:C++编写的libtorrent库如何引入到虚拟环境之中.

综述: 首先,项目中需要使用到libtorrent库;其次,如何把该库引入到Python的虚拟环境之中;最后,libtorrent的依赖环境是什么?

实现: 1.安装Boost:该函数库是libtorrent的依赖,同时也是C++的准标准库.

###首先,在Linux终端安装boost的依赖:
           sudo apt-get install mpi-default-dev
           sudo apt-get install libicu-dev
           sudo apt-get install Python-dev
           sudo apt-get install libbz2-dev
           
       ###其次,官网下载boost安装包,最好选择压缩版,速度极慢---这是一个耗时操作!!!
           下载完成,解压出来,切换到目录下:
           方式一:
               执行sudo ./bootstrap.sh ,生成b2;
               若有需要,需要使用b2编译boost之前可能需要在boost的路径下修改project-config.jam文件,
               把using python : 2.7 : /usr ;修改为python3.5;
               最后执行sudo ./b2 install,大概编译半小时,boost安装完成.
               whereis boost查看boost路径:
               其中/usr/local/include存放boost头文件,/usr/local/lib存放boost函数库,该路径在libtorrent中可能会使用到.
           --------------------------------------------------
           方式二(不推荐):
               sudo apt-get install libboost-dev(使用该种方式安装版本太低,和libtorrent最新版本不匹配) 

2.安装libtorrent:

sudo apt-get install libssl-dev
       编译libtorrent,分别执行:
       sudo ./configure --enable-python-binding --with-boost-python
       sudo make
       sudo make install
       大概耗时30分钟左右,耐心等吧.    
       --------------------------------------------------
      libtorrent安装成功后,修改profile文件,如下:
         sudo vim /etc/profile
         export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
         终端:
             source /etc/profile
             sudo reboot

3.将Ubuntu环境挂载到Python虚拟环境:

创建Python虚拟环境时使用下述语句:
       mkvirtualenv -p python3.5 apiserver --system-site-packages

4.追记:

 #### 很重要!!! ####
   4.1.若需要Python3,在编译之前请把虚拟机默认的Python2改为Python3.which可查看存在路径.重命名就好了.等编译完成后再更改回去. 
   4.2.此外,请注意版本问题:libtorrent版本1.1.8,boost版本1.65.
   4.3 安装完成后,若import libtorrent时抛出libtorrent-rasterbar.so.9: cannot open shared object file: No such file or directory的异常,请执行:
   # cat /etc/ld.so.conf
   include ld.so.conf.d/*.conf
   # echo "/usr/local/lib" >> /etc/ld.so.conf
   # ldconfig
 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 重新学习ubuntu --python3

    参考:https://blog.csdn.net/u013431916/article/details/79743866

    用户2398817
  • python如何实现对文件结束符(EOF

    在c语言你能使用while(scanf(“%d”,x) !=EOF)判断输入是否碰到文件结束符(EOF)。

    用户2398817
  • CentOS 7上安装Python 3.

    CentOS 7默认安装了Python 2.7,系统本身也使用它来启用系统命令例如‘yum’

    用户2398817
  • 编译linux内核源码,安装、删除内核【转】

    转自:https://blog.csdn.net/qq_28437139/article/details/83692907?utm_source=distrib...

    用户3033338
  • Facebook宣布开源Caffe2:可在手机与树莓派上训练和部署模型

    选自Caffe2.ai 机器之心编译 在今年的 F8 开发者大会上,Facebook 正式宣布开源其全新深度学习框架 Caffe2。据 Caffe2 官方博客介...

    机器之心
  • 多线程设计模式解读4—Producer-Consumer模式

    Producer-Consumer模式可以说是多线程设计模式之王,后期我们要讲的许多模式像Thread-Pool模式,Active Object模式等都是Pro...

    java达人
  • ubuntu好看的字体安装

    ubuntu linux用了很久,可是对终端下的字体一直不是很满意,今天终于找到了一些比较好看的终端字体,尤其是droid sans mono字体,简直爱死了,...

    飞奔去旅行
  • 你是否知道Redis为什么有1️⃣6️⃣ 个数据库?

    链接:https://mp.weixin.qq.com/s/LUDTF_JoJ_z9VkQhi4z4zQ

    架构师修行之路
  • Entity Framework Core 之数据库迁移

    前言 最近打算用.NET Core写一份开源的简易CMS系统,来练练手 所以又去深入研究了一下Entity Framework Core  发现其实有些细节园子...

    GuZhenYin
  • Hinton传奇:退学当木匠,辞职反军方,终成一代AI教父

    李林 若朴 编译自 Telegraph 原文作者 Joe Shute 量子位 报道 | 公众号 QbitAI 英国《每日电讯报》打算用三篇报道,来描绘人工智能在...

    量子位

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动