Lilyenv is a tool for managing python interpreters and virtualenvs.
Lilyenv is written in Rust and can be installed using cargo install lilyenv.
lilyenv activate <project> <version>will activate a virtualenv. The interpreter will be downloaded and the virtualenv created automatically if needed.lilyenv listwill list all virtualenvs managed by lilyenv. The optional<project>argument shows just that project's virtualenvs.lilyenv upgrade <version>will upgrade the python interpreter to the latest bugfix release.lilyenv set-project-directory <project> <default_directory>?will set the default directory for the<project>. If<default_directory> is omitted the current directory is used.lilyenv unset-project-directory <project>will unset the default directory for the<project>.lilyenv set-shell <project>?allows explicitly setting the shell lilyenv uses when activating a virtualenv. If<project>is provided, the shell is only set for that project.lilyenv shell-configshows shell-specific configuration information. This can be used to set a custom prompt.lilyenv virtualenv <project> <version>will create a virtualenv for a project using the given python version.lilyenv remove-virtualenv <project> <version>will delete the specified virtualenv.lilyenv remove-project <project>will delete all virtualenvs for a project.lilyenv download <version>will download a python interpreter with the given version.lilyenv downloadwill list all python interpreters available to download.
pyenv is a tool for managing Python interpreters.
| Pyenv | Lilyenv |
|---|---|
| Compiles each interpreter from source on your machine. | Downloads pre-built binaries. |
| Makes Python interpreters available for use both with and without a virtualenv involved. | Only exposes interpreters via activated virtualenvs. |
| Awkward to update to newer interpreter versions. | Straightforward to update an interpreter with lilyenv upgrade. |
| Virtualenvwrapper | Lilyenv |
|---|---|
| Works with existing Python interpreters on your system. | Downloads Python interpreters for you. |
| Mostly a collection of shell scripts. | Written in Rust with a small amount of shell for customising the prompt. This can be viewed with the lilyenv shell-config command. |
| Requires an existing python interpreter to install. | Installed with Cargo and doesn't require an existing Python interpreter. |
Uses the virtualenv project. |
Uses the built-in venv module from the downloaded interpreter. |
| Provides many hooks for custom scripting. | Provides opinionated defaults with minimal customisability. |
| Poetry | Lilyenv |
|---|---|
| Optimised for project development with only one supported Python version. | Optimised for library development with multiple supported Python versions. |
| Manages dependencies for you. | Stops at providing a virtualenv. |
| Requires an existing python interpreter to install. | Installed with Cargo and doesn't require an existing Python interpreter. |