Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.73k stars 445 forks source link

No matching distribution found for libtorrent==1.2.19 (Raspberry Pi) #8044

Open dajhorn opened 1 month ago

dajhorn commented 1 month ago

Pip fails to install Tribler on an RPi with an error that is similar to #8011.

The local Python environment was created with:

$ python3 -m venv ~/local

The reproducer and error transcript is:

$ ~/local/bin/pip3 install tribler
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting tribler
  Using cached https://www.piwheels.org/simple/tribler/tribler-7.13.1-py3-none-any.whl (1.0 MB)
Collecting aiohttp==3.9.0 (from tribler)
  Using cached aiohttp-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.4 kB)
Collecting aiohttp-apispec==2.2.3 (from tribler)
  Using cached https://www.piwheels.org/simple/aiohttp-apispec/aiohttp_apispec-2.2.3-py3-none-any.whl (2.7 MB)
Collecting anyio==3.7.1 (from tribler)
  Using cached https://www.piwheels.org/simple/anyio/anyio-3.7.1-py3-none-any.whl (80 kB)
Collecting chardet==5.1.0 (from tribler)
  Using cached https://www.piwheels.org/simple/chardet/chardet-5.1.0-py3-none-any.whl (199 kB)
Collecting configobj==5.0.8 (from tribler)
  Using cached https://www.piwheels.org/simple/configobj/configobj-5.0.8-py2.py3-none-any.whl (35 kB)
Collecting cryptography==42.0.5 (from tribler)
  Using cached cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl.metadata (5.3 kB)
Collecting Faker==18.11.2 (from tribler)
  Using cached https://www.piwheels.org/simple/faker/Faker-18.11.2-py3-none-any.whl (1.7 MB)
Collecting libnacl==1.8.0 (from tribler)
  Using cached https://www.piwheels.org/simple/libnacl/libnacl-1.8.0-py2.py3-none-any.whl (20 kB)
Collecting lz4==4.3.2 (from tribler)
  Using cached lz4-4.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (3.7 kB)
Collecting marshmallow==3.19.0 (from tribler)
  Using cached https://www.piwheels.org/simple/marshmallow/marshmallow-3.19.0-py3-none-any.whl (49 kB)
Collecting networkx==3.1 (from tribler)
  Using cached https://www.piwheels.org/simple/networkx/networkx-3.1-py3-none-any.whl (2.1 MB)
Collecting pony==0.7.17 (from tribler)
  Using cached https://www.piwheels.org/simple/pony/pony-0.7.17-py3-none-any.whl (316 kB)
Collecting psutil==5.9.5 (from tribler)
  Using cached psutil-5.9.5.tar.gz (493 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pydantic==1.10.11 (from tribler)
  Using cached pydantic-1.10.11-py3-none-any.whl.metadata (148 kB)
Collecting PyOpenSSL==24.0.0 (from tribler)
  Using cached https://www.piwheels.org/simple/pyopenssl/pyOpenSSL-24.0.0-py3-none-any.whl (58 kB)
Collecting pyyaml==6.0 (from tribler)
  Using cached PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.1 kB)
Collecting sentry-sdk==1.31.0 (from tribler)
  Using cached https://www.piwheels.org/simple/sentry-sdk/sentry_sdk-1.31.0-py2.py3-none-any.whl (224 kB)
Collecting yappi==1.4.0 (from tribler)
  Using cached yappi-1.4.0.tar.gz (59 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting yarl==1.9.2 (from tribler)
  Using cached yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (23 kB)
Collecting bitarray==2.7.6 (from tribler)
  Using cached bitarray-2.7.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (32 kB)
Collecting pyipv8==2.13.0 (from tribler)
  Using cached https://www.piwheels.org/simple/pyipv8/pyipv8-2.13.0-py3-none-any.whl (436 kB)
INFO: pip is looking at multiple versions of tribler to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement libtorrent==1.2.19 (from tribler) (from versions: none)
ERROR: No matching distribution found for libtorrent==1.2.19

Expected behavior is that pip3 installs Tribler on a vanilla Debian ARM64 host.

The OS is:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm

Additional context is:

$ apt list python3 python3-libtorrent libtorrent-dev libtorrent-rasterbar-dev
Listing... Done
libtorrent-dev/stable,now 0.13.8-2+b1 arm64 [installed]
libtorrent-dev/stable 0.13.8-2+b1 armhf
libtorrent-rasterbar-dev/stable,now 2.0.8-1+b1 arm64 [installed]
libtorrent-rasterbar-dev/stable 2.0.8-1+b1 armhf
python3-libtorrent/stable,now 2.0.8-1+b1 arm64 [installed]
python3-libtorrent/stable 2.0.8-1+b1 armhf
python3/stable,now 3.11.2-1+b1 arm64 [installed]
python3/stable 3.11.2-1+b1 armhf
qstokkink commented 1 month ago

Sadly, Tribler cannot run on Python 3.11 yet (main issue: #7282).

If you're feeling very adventurous and you have a few hours to waste, you can compile libtorrent yourself (not easy: #5020). If not, the only other supported option is to switch to Python 3.9.