在 Windows 7 上为 Python 3.6 安装 libtorrent

Posted

技术标签:

【中文标题】在 Windows 7 上为 Python 3.6 安装 libtorrent【英文标题】:Installing libtorrent for Python 3.6 on Windows 7 【发布时间】:2017-04-18 17:39:46 【问题描述】:

Windows 7 x64 - Python 3.6

我正在尝试使用说明here 在 Windows 中安装 libtorrent Python 库。

导航到 setup.py 文件后,我使用了以下命令

python setup.py build
python setup.py install

在 cmd 窗口中,我收到以下消息:

C:\Users\thomas\Desktop\libtorrent-master>python setup.py build
running build

C:\Users\thomas\Desktop\libtorrent-master>python setup.py install
running install
running build
running install_egg_info
Removing C:\Users\thomas\AppData\Local\Programs\Python\Python36-32\Lib\site-pac
kages\python_libtorrent-1.2.0-py3.6.egg-info
Writing C:\Users\thomas\AppData\Local\Programs\Python\Python36-32\Lib\site-pack
ages\python_libtorrent-1.2.0-py3.6.egg-info

我还需要做什么?因为试图导入 libtorrent 库,解释器会出现以下消息:

>>> import libtorrent
Traceback (most recent call last):
File , line 1, in
ModuleNotFoundError: No module named 'libtorrent'

无论如何,正确的 DLL 在 Python 文件夹中不可用,因此我无法导入库。

使用 Sourceforge 链接中的 MSI 安装程序也无济于事,因为它已经严重过时了。

【问题讨论】:

如果您使用的是 64 位 Python,您可以使用 this wheel 使用 pip 安装它,或者使用 32 位使用 this 安装它。直到我写出完整的答案... 【参考方案1】:

如果您快速查看您尝试安装的setup.py 文件,您会发现see 假定您已安装boost C++ libraries 以生成Python 所需的libtorrent.pyd。您可能会收到错误消息,但现在情况并非如此。


为 Python 安装 libtorrent 而不构建它

为了您的方便,我构建了libtorrent 的Python Wheels,可以使用pip install 安装。请注意,如果它不起作用,则意味着您必须为您的机器构建自己的.pyd

Wheel for Python 3.5 32-bit

Wheel for Python 3.5 64-bit


在 Windows 7 上为 Python 构建和安装 libtorrent

为了让boost 工作,您首先必须下载并安装:

    Windows 7 SDK and .NET Framework 4

    Microsoft Visual C++ 2015 Build Tools

完成安装后,您必须将它们的目录添加到您的PATH

    右键单击Computer 并转到Properties

    点击左侧的Advanced System Settings

    点击右下角的Environment Variables

    从顶部列表中选择PATH,然后单击Edit...

    如果您想构建,请在弹出的框内添加这些 对于 32 位 Python:

    ;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\
    

    或者这些用于 64 位:

    ;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\
    

    在弹出窗口和Environment Variables 中单击OK 窗口,并让另一个打开,我们稍后会需要它..

现在一切都设置好了,您可以安装boost C++ libraries。因为libtorrent的Python绑定有一些issues的boost版本高于1.63(2017年8月),所以一定要下载this one。 下载后:

    解压

    Command Promptcd打开到解压后的目录中

    运行bootstrap.bat 安装库

完成后,转到您之前打开的System Properties 窗口,然后再次单击Environment Variables。 点击New... 并添加这些:

Variable name: BOOST_ROOT
Variable value: "<full path to extracted directory of boost>"

然后再次单击OK 到两个窗口。

在您真正开始构建libtorrent 之前,还有最后一步,即在配置文件中指定您的 Python 版本。

    打开一个 Command Prompt

    执行 echo using python : &lt;Python Version&gt; : "&lt;Python Path&gt;" : "&lt;Python Path&gt;\Include" : "&lt;Python Path&gt;\libs" ; &gt;&gt; user-config.jam

    例如: echo using python : 3.5 : "C:\Program Files\Python35" : "C:\Program Files\Python35\Include" : "C:\Program Files\Python35\libs" ; &gt;&gt; user-config.jam

现在构建libtorrent

    Download 并提取repository

    在记事本中打开&lt;libtorrent extracted directory&gt;\include\libtorrent\session.hpp,找到以std::snprintf开头的行,删除std::并保存。

    Command Promptcd 中变成<libtorrent extracted directory>\bindings\python

    现在

    如果您正在构建 32 位 Python,请执行:

    bjam libtorrent-link=static boost-link=static stage_module

    bjam libtorrent-link=static boost-link=static address-model=64 stage_module 用于 64 位

    请耐心等待,完成后您将收到libtorrent.pyd&lt;libtorrent extracted directory&gt;\bindings\python 你可以 在 Python 中导入!

【讨论】:

Windows 10 需要哪些 Windows SDK?我正在尝试按照您的回答,但是对于 Windows 10,SDK 似乎有所不同? 我记得在 Windows 10 上努力使这项工作,SDK 的文件似乎有所不同。你能告诉我你在哪一步吗?我再看一遍 嘿@Stam Kaly,感谢您的回复!我实际上在第 1 步。我找不到 Windows 7 SDK and .NET Framework 4 的等价物。然后,当我尝试将其添加到path 时,它会导致step 5 出现问题。非常感谢您的帮助! This 是您应该从中获取 SDK 的地方。路径会有所不同,所以不要继续下一步。 因为我没有windows了,我的回答对你帮助不大,但我心里有一些东西可以帮上忙。检查此文件夹是否存在:“C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0”并通过 stamkaly@gmail.com 给我发送电子邮件,我们将在那里讨论它,一旦我有足够的信息我会给你一个完整的答案!

以上是关于在 Windows 7 上为 Python 3.6 安装 libtorrent的主要内容,如果未能解决你的问题,请参考以下文章

在 MacOS Mojave 上为 QGIS 安装 Python 3.6

在 mac 上为 python 3.6 安装 opencv3

在 CentOS 上为 Django 项目安装 python 3.6 mysqlclient

无法在 macOS 上为 Python 3.6 导入 pdftotext

无法加载原生 TensorFlow 运行时。 Windows 10 上的 Python 3.6

Python matplotlib 在 Windows 7 上为 freetype、png 包安装问题