#python #virtualenv #virtualization

app lilyenv

A Python interpreter and virtualenv manager

5 stable releases

1.1.1 Feb 10, 2024
1.1.0 Feb 1, 2024
1.0.2 Jan 30, 2024
1.0.1 Jan 8, 2024

#506 in Development tools

31 downloads per month

MIT license

33KB
776 lines

Lilyenv

Lilyenv is a tool for managing python interpreters and virtualenvs.

Installation

Lilyenv is written in Rust and can be installed using cargo install lilyenv.

Usage

  • lilyenv activate <project> <version> will activate a virtualenv. The interpreter will be downloaded and the virtualenv created automatically if needed.
  • lilyenv list will 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 allows explicitly setting the shell lilyenv uses when activating a virtualenv.
  • lilyenv shell-config shows 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 download will list all python interpreters available to download.

Comparison with other tools

Pyenv

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

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

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.

Dependencies

~21–39MB
~638K SLoC