mason.nvim icon indicating copy to clipboard operation
mason.nvim copied to clipboard

feat(pypi): fallback to virtualenv if venv fails

Open kbenzie opened this issue 1 year ago • 2 comments

On Ubuntu 22.04 when the python3-venv package is not installed:

  • Importing the venv module will succeed.
  • Running python3 -m venv --help will output help.
  • Running python3 -m venv $VENV_DIR fails with the following output:
$ python3 -m venv $VENV_DIR
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.10-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: /root/venv/bin/python3

When running in a rootless environment installing the python3-venv package is not tenable. However, the virtualenv package can be installed via pip in the users home directory.

This patch checks the result of python3 -m venv $VENV_DIR, if that fails then it will fallback to calling python3 -m virtualenv $VENV_DIR instead.

kbenzie avatar Apr 15 '24 23:04 kbenzie

I'm using the PR for multiple months now in a rootless scenario as described by kbenzie and I haven't encountered any issues. I think it would be great to get this merged. It is only a very minor change, and the user could be even warned that the fallback happens to make it more clear that this is not the default behavior.

LarsHaalck avatar Sep 25 '24 13:09 LarsHaalck

@LarsHaalck I'm glad it's also useful to someone other than myself.

I've updated the PR to fix the merge conflicts.

@williamboman is there anything I can do to help get this integrated into the main branch?

kbenzie avatar Oct 01 '24 11:10 kbenzie