feat(pypi): fallback to virtualenv if venv fails
On Ubuntu 22.04 when the python3-venv package is not installed:
- Importing the
venvmodule will succeed. - Running
python3 -m venv --helpwill output help. - Running
python3 -m venv $VENV_DIRfails 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.
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 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?