在 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 Prompt
和cd
打开到解压后的目录中
运行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 : <Python Version> : "<Python Path>" : "<Python Path>\Include" : "<Python Path>\libs" ; >> user-config.jam
例如:
echo using python : 3.5 : "C:\Program Files\Python35" : "C:\Program Files\Python35\Include" : "C:\Program Files\Python35\libs" ; >> user-config.jam
现在构建libtorrent
:
Download 并提取repository
在记事本中打开<libtorrent extracted directory>\include\libtorrent\session.hpp
,找到以std::snprintf
开头的行,删除std::
并保存。
在Command Prompt
、cd
中变成<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
在<libtorrent extracted directory>\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