thatmattlove / hyperglass

hyperglass is the network looking glass that tries to make the internet better.
https://hyperglass.dev
BSD 3-Clause Clear License
594 stars 88 forks source link

Unable to install on Debian12 #221

Closed KincaidYang closed 12 months ago

KincaidYang commented 1 year ago

Debian has adjusted the strategy of installing Python packages. You need to use apt to install from the software source, but hyperglass is not in the official source. For details, see: https://packages.debian.org/search?suite=all&section=all&arch=any&searchon=names&keywords= hyperglass root@7f437e:~# pip3 install hyperglass error: externally-managed-environment

× This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.

KincaidYang commented 1 year ago

Use "pip install hyperglass --break-system-packages" can be temporarily resolved

netravnen commented 11 months ago

Generally, I would always recommend using Virtual Environment. Saves a bunch of trouble down the road. Using isolated package environments for exexution. Peering Manager uses Venv. When running the upgrade script for peering Manager. It 'just' deletes the Venv and recreates it. Ensuring a blank slate Package environment is 'only' created based on the requirements.txt file.