Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation as instructed for Mint fails #1477

Open
LinuxOnTheDesktop opened this issue Oct 22, 2024 · 11 comments
Open

Installation as instructed for Mint fails #1477

LinuxOnTheDesktop opened this issue Oct 22, 2024 · 11 comments

Comments

@LinuxOnTheDesktop
Copy link

LinuxOnTheDesktop commented Oct 22, 2024

The output of thefuck --version (something like The Fuck 3.1 using Python 3.5.0 and Bash 4.4.12(1)-release):

Irrelevant - the problem is with installing the program in the first place.

Your system (Debian 7, ArchLinux, Windows, etc.):

Mint 22 Cinnamon. (Mint 22 is based upon Ubuntu 24.04, a.k.a. 'Ubuntu Noble'.)

How to reproduce the bug:

Do, as per installation instructions (within the README) this:
$ sudo apt update
$ sudo apt install python3-dev python3-pip python3-setuptools
$ pip3 install thefuck --user

And consequently see the following after the pip3 install.

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.12/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.

The output of The Fuck with THEFUCK_DEBUG=true exported (typically execute export THEFUCK_DEBUG=true in your shell before The Fuck):

Irrelevant.

If the bug only appears with a specific application, the output of that application and its version:

Irrelevant.

Anything else you think is relevant:

Nothing.

EDITED (because I submitted the form too early by accident).

@rogersbarn
Copy link

same issue, also on mint 22. worked great before

@BorisKonstantinov
Copy link

same problem on mint 22

@j-lakeman
Copy link

consider

@LinuxOnTheDesktop
Copy link
Author

@j-lakeman

I.e., the current repository is unmaintained (at least largely) and there is a program with the (odd?) name 'Pay Respects' that is maintained and does a similar job to TheFuck. Right. Thanks.

@JumpIn-Git
Copy link

this doesnt have to do with thefuck.... thats just how pip works now you will get this error with any pip package you need to make a venv

@ylyxa
Copy link

ylyxa commented Dec 5, 2024

How I installed this on Mint 22:

sudo apt install pipx
pipx install thefuck

Install distutils: follow instructions in #1457 (comment)

Fix deprecated package use: #1449 (comment) (note: the directory will be different from the one that comment's OP mentions, you need the one where bin was in the previous step)

@LinuxOnTheDesktop
Copy link
Author

LinuxOnTheDesktop commented Dec 15, 2024

@ylyxa

Thank you. However, I ran into the following problem. After doing . .

$ sudo apt install pipx
$ pipx install the fuck
$ cd ~/.local/share/pipx/venvs/thefuck/bin
$ ./python3 -m pip install setuptools

. . I could find no conf.py file, anywhere, that contained from imp import load_source. I did find, within ~/.local/share/pipx/venvs/thefuck/lib/python3.12/site-packages/thefuck/conf.py and within ~/.local/share/pipx/venvs/thefuck/lib64/python3.12/site-packages/thefuck/conf.py the following.

settings = load_source(
    	'settings', text_type(self.user_dir.joinpath('settings.py')))

I replaced that text, in both files, with settings = importlib.machinery.SourceFileLoader('settings', text_type(self.user_dir.joinpath('settings.py'))).load_module().

Similarly: I found ~/.local/share/pipx/venvs/thefuck/lib/python3.12/site-packages/thefuck/types.py, but could not find therein the from imp import line, but I did locate the rule_module line and I replaced it.

Then I opened a new termina window and . . no dice:

$ fuck
Traceback (most recent call last):
  File "/home/<me>/.local/bin/fuck", line 5, in <module>
    from thefuck.entrypoints.not_configured import main
ModuleNotFoundError: No module named 'thefuck'

Python packaging is a horrible, horrible thing (which has prevented me from bothering to learn Python).

@JumpIn-Git
Copy link

just make a venv...

python -m venv --system-site-packages --upgrade-deps ~/.venv

and add source ~/.venv/bin/activate, file name of activate will differ with your shell. restart shell and just run the pip command

@JumpIn-Git
Copy link

just make a venv...

python -m venv --system-site-packages --upgrade-deps ~/.venv

and add source ~/.venv/bin/activate, file name of activate will differ with your shell. restart shell and just run the pip command

@LinuxOnTheDesktop @ylyxa

@LinuxOnTheDesktop
Copy link
Author

LinuxOnTheDesktop commented Dec 15, 2024

@JumpIn-Git

Thanks, but:

  • where does the source command go? In a .bashrc?
  • 'run the pip command' - which pip command?
  • I ran python -m venv --system-site-packages --upgrade-deps ~/.venv (without understanding it, but I did back up my system first) and so doing produced a load of depreciation warnings.

Still: I think I've run out of f*cks; I'll do without the tool or use a replacement for it.

@JumpIn-Git
Copy link

@JumpIn-Git

Thanks, but:

* where does the `source` command go? In a .bashrc?

* 'run the pip command' - which pip command?

* I ran `python -m venv --system-site-packages --upgrade-deps ~/.venv` (without understanding it, but I did back up my system first) and so doing produced a load of depreciation warnings.

Still: I think I've run out of f*cks; I'll do without the tool or use a replacement for it.

the source commands in your shells config, and i dont think the error matter, just install the fuck with pip install thefuck

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants