libtorrent-rasterbar的python绑定是否适用于Python 3?

时间:2014-06-06 03:11:31

标签: python libtorrent

我安装了Python 3.4(32位),并在其上安装了python-libtorrent-0.16.16.win32.msi。

我的测试代码说: ImportError:DLL加载失败:%1不是有效的Win32应用程序。

我的谷歌搜索结果表明这适用于Python 2.7。这是解决方案吗?我必须降级我的Python?

2 个答案:

答案 0 :(得分:2)

NO。 Libtorrent不支持Python 3。

由于Python 3 utf8处理差异,它编译但不起作用。 有一段时间没有成功让它恢复正常工作 https://code.google.com/p/libtorrent/issues/detail?id=449

当前主干甚至包含无效的Python 3,即 http://sourceforge.net/p/libtorrent/code/HEAD/tree/trunk/bindings/python/setup.py <第70行> 'print cmdline'

由于某种原因,有一个Ubuntu python3-libtorrent软件包会让人感到困惑,但它肯定不起作用,手动编译也不行。

steps:
apt-get build-dep libtorrent-rasterbar
export 'PYTHON_VERSION=3.4'; export 'PYTHON=/usr/bin/python3.34'
./configure LDFLAGS="-L/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/" --enable-python-binding --enable-geoip=no
--with-boost-python=boost_python-py34
ldconfig

>> python
import libtorrent
ses = libtorrent.session()
ses.save_state()

"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 0: invalid start byte"

答案 1 :(得分:0)

它确实支持python3

此docker文件对我有用(libtorrent-具有lib的本地目录已签出到所需的版本)

FROM debian:buster-slim

WORKDIR /app/libtorrent
COPY debian/backports.list /etc/apt/sources.list.d/
RUN apt-get update
RUN apt-get install -y -t buster-backports checkinstall
RUN apt-get install -y build-essential libboost-system-dev libboost-python-dev libboost-chrono-dev libboost-random-dev libssl-dev
RUN apt-get install -y autoconf automake libtool
ADD libtorrent /app/libtorrent
RUN ./autotool.sh
# RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
ENV PYTHON=/usr/bin/python3.7
RUN ./configure --enable-python-binding --with-libiconv
RUN make
RUN checkinstall
RUN ldconfig