9
Install From PyPI
Loren Eteval edited this page 2026-09-19 14:39:58 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Install From PyPI

Furious is published on PyPI as Furious-GUI. A normal installation also installs PySide6 and the supported native core bindings automatically; the GUI and cores do not need to be installed separately.

Note

Supported binary wheels already contain the compiled native components. Most users do not need Go, CMake, GCC, Clang, MinGW, or another compiler toolchain.

Install

A virtual environment is recommended so Furious and its dependencies remain isolated, but it is not required.

Create a virtual environment:

python -m venv .venv

Activate it on Windows PowerShell:

.\.venv\Scripts\Activate.ps1

Or on Linux and macOS:

source .venv/bin/activate

Upgrade pip and install Furious:

python -m pip install --upgrade pip
python -m pip install Furious-GUI

Launch the application:

Furious

You can also launch the installed package directly:

python -m Furious

What pip Installs

Furious-GUI declares its runtime dependencies directly. The installation includes:

  • PySide6-Essentials and PySide6-Addons for the GUI;
  • Xray-core for the Xray backend;
  • hysteria for Hysteria 1;
  • hysteria2 for Hysteria 2;
  • tun2socks for application-managed TUN mode;
  • the remaining cross-platform and platform-specific Python dependencies.

There are no core-related optional extras and no separate core-installation step. The native binding wheels contain the corresponding Go core and C++ Python extension.

Furious does not pin a specific PySide6 release. pip selects a PySide6 version compatible with the chosen Python and platform. This replaces the historical fixed “PySide6 6.1.0 minimum” guidance.

Compatibility

Furious declares Python 3.8 or newer in its package metadata. That lower bound is not a claim that every Python, Qt, operating-system, and architecture combination is tested. The current source-test workflow uses ordinary CPython 3.13 with PySide6 6.8.3 on Windows, Linux, and macOS. An unpinned PyPI installation may resolve a different Qt release.

Binary availability depends on every dependency. As checked on 2026-09-19, PySide6 6.11.2 requires Python 3.103.14 and publishes wheels with these platform tags:

Platform Architectures Qt wheel requirement
Windows x86-64, ARM64 Matching 64-bit Windows wheel
Linux x86-64 glibc 2.34 or newer
Linux ARM64 glibc 2.39 or newer
macOS Intel, Apple Silicon macOS 13 or newer

These describe that Qt release, not the minimum OS for every Furious package. Older Python or operating-system versions may resolve older dependencies; wheel availability alone does not prove runtime compatibility. The packaged applications use their own selected Python/Qt builds and have different requirements.

Check resolution for your actual interpreter and platform without installing anything:

python -m pip install --dry-run --only-binary=:all: Furious-GUI

Important limits:

  • PyPy and other Python implementations are not supported by the native binding/PySide6 wheel set.
  • Free-threaded CPython is not a supported Furious installation even though some individual core bindings publish free-threaded wheels; PySide6 does not currently publish matching free-threaded wheels.
  • The native bindings do not publish 32-bit wheels.
  • Linux wheels target glibc-based manylinux systems, not musl-based distributions such as Alpine Linux.
  • The special Windows 7-compatible PySide6 and Python builds used by Furious binary releases are not installed from PyPI. Use a Windows 7 artifact from GitHub Releases instead.

If No Compatible Wheel Is Available

When pip finds a matching wheel, installation is a direct download and no compiler is involved. If it prints messages such as Building wheel for Xray-core, hysteria, hysteria2, or tun2socks, then no compatible binary wheel was selected and pip is attempting the exceptional source-build path.

You can require wheels and fail immediately instead of compiling:

python -m pip install --only-binary=:all: Furious-GUI

First upgrade pip and confirm that the Python implementation, version, operating system, architecture, and Linux libc match the selected dependency wheels described in the compatibility section. Choosing a compatible CPython build is usually simpler than compiling the bindings.

Building Native Bindings From Source

Source builds are intended for binding development or environments without matching wheels. All four bindings use a native Go archive plus a C++/pybind11 extension. Use the build instructions and Go module requirements from the exact binding release you are compiling; toolchain requirements change independently of Furious.

For example, Xray-core-python tracks its Go requirement in xray-go/go.mod, while hysteria2-python uses hysteria2-go/app/go.mod. Do not assume one Go version works for every binding release.

pip's isolated build environment installs the declared Python build tools—CMake, pybind11, setuptools, and wheel—when compatible distributions are available. Go and a native compiler must be installed separately and available in PATH.

Use GCC or Clang on Linux and Apple Clang on macOS. The binding projects use MinGW-w64 on Windows x86-64 and LLVM-MinGW on Windows ARM64; MSVC and Cygwin are not their supported build paths. If Go module downloads are blocked on your network, configure GOPROXY before starting the source build.

See the binding repositories for current build details:

Troubleshooting

pip cannot find a compatible distribution

Check the interpreter and architecture:

python -c "import platform, sys; print(sys.version); print(platform.machine()); print(platform.python_implementation())"

Then upgrade pip and retry. If matching wheels are unavailable for the environment, use a compatible CPython build or a prebuilt application from GitHub Releases.

pip unexpectedly starts compiling

Cancel the installation, upgrade pip, and retry with --only-binary=:all:. A source build is not required on a supported wheel combination.

Furious is not found

Make sure the virtual environment is active and verify the installation:

python -m pip show Furious-GUI
python -m Furious

If python -m Furious works, the environment's scripts directory is not active or is missing from PATH.

See also