opentimestamps / opentimestamps-client

OpenTimestamps client
Other
288 stars 84 forks source link

error: externally-managed-environment #137

Open Deekee62 opened 1 year ago

Deekee62 commented 1 year ago

I installed the open opentimestamps-client on Debain BullsEye some months ago using:

$ sudo apt-get install python3 python3-dev python3-pip python3-setuptools python3-wheel

and

$ sudo pip3 install opentimestamps-client

I also checked the OpenTimestamps client version to check that it is properly installed

$ ots --version
v0.7.1

An everything seemed to work fine and I used it many times to verify more timestamps, when installing additional programs (e.g. LND) and when updating existing programs to a newer version.

Since then I've upgraded to Debian Bookworm and when trying to use the OpenTimestamps client I get the following error:

ots --version
Traceback (most recent call last):
  File "/usr/local/bin/ots", line 5, in <module>
    from otsclient.ots import main
ModuleNotFoundError: No module named 'otsclient'

The directory /usr/local/bin contains the following files:

After trying to reinstall it I get the following error:

$ sudo pip3 install opentimestamps-client
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.

Unfortunately I'm a Unix beginner and some help would be appreciated very much

Many thanks in advance and have a very nice day!

petertodd commented 1 year ago

On Wed, Jul 19, 2023 at 02:48:55AM -0700, Deekee62 wrote:

I installed the open opentimestamps-client on Debain BullsEye some months ago using:

$ sudo apt-get install python3 python3-dev python3-pip python3-setuptools python3-wheel

and

$ sudo pip3 install opentimestamps-client

I also checked the OpenTimestamps client version to check that it is properly installed

$ ots --version
v0.7.1

An everything seemed to work fine and I used it many times to verify more timestamps, when installing additional programs (e.g. LND) and when updating existing programs to a newer version.

Since then I've upgraded to Debian Bookworm and when trying to use the OpenTimestamps client I get the following error:

ots --version
Traceback (most recent call last):
  File "/usr/local/bin/ots", line 5, in <module>
    from otsclient.ots import main
ModuleNotFoundError: No module named 'otsclient'

The directory /usr/local/bin contains the following files:

  • ots
  • ots-git-gpg-wrapper

After trying to reinstall it I get the following error:

$ sudo pip3 install opentimestamps-client
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.

If I understand correctly Debian Bookworm removed the ability to install system-wide python packages with pip; you are supposed to only use virtual environment schemes, or Debian packages. I'd suggest you try following the above suggestions as the opentimestamps-client isn't currently packaged for Debian.

There is an open request to package it officially. But there hasn't been any progress in a few years: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921251