Search code examples
pythonpippython-2to3

this thing i'm doing wants python 2to3. i already have that. what do i do?


I'm trying to install the package pyminifier at the command prompt, this happens:

C:\Users\[my name]\Downloads\JKLMBombpartyHelper-master\JKLMBombpartyHelper-master>python -m pip install pyminifier
Collecting pyminifier
  Using cached pyminifier-2.1.tar.gz (47 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [3 lines of output]
      Python 3.X support requires the 2to3 tool.
      It normally comes with Python 3.X but (apparenty) not on your distribution.
      Please find out what package you need to get 2to3and install it.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

However, if I attempt to install 2to3 using pip install 2to3, I find that it is already installed:

Requirement already satisfied: 2to3 in c:\users\[my name]\appdata\roaming\python\python310\site-packages (1.0)

What is wrong, and how do I fix it?


Solution

  • My guess is that it fails because pip tries to build a wheel of pyminifier in an isolated build environment and fails because there is no 2to3 in that build environment. This is a very old, outdated, unmaintained, and not well-behaved library. If I were you I would not use it at all, if I could.

    If you really depend on that library, you could try to tell pip to install it without "build isolation", with python -m pip install --no-build-isolation --no-deps pyminifier. I am not sure it would help. Maybe it would be better to use an old Python version (not sure which Python version you are using right now). Honestly, I would rather not use this library at all if I were you.