Skip to main content

A virtual environment manager for Python.

Project description

uvenv - workflow tool for uv.

Note: This project is a work in progress. Some features may not be fully implemented or may change in the future.

uvenv assumes the following project structure:

  • requirements.in — A file containing the packages to be installed.
  • requirements.txt — A lockfile containing the exact versions of the packages to be installed.

uvenv is a Python project management tool that leverages the speed of uv for dependency management and virtual environment creation. It provides a simple interface for managing Python projects, inspired by tools like pipenv, but using requirements.txt and requirements.in files.

Philosophy

  • Simplicity: uvenv aims to provide a simple and intuitive interface for managing Python projects.
  • Speed: uvenv leverages the speed of uv for dependency management and virtual environment creation.
  • Flexibility: uvenv aims to be flexible and support a variety of project structures and workflows.
  • Compatibility: uvenv aims to be compatible with a variety of Python versions and platforms.
  • Minimalism: uvenv aims to be minimal and avoid unnecessary complexity.
  • Power: uvenv aims to provide powerful features for managing Python projects.
  • Community: uvenv aims to be community-driven and open-source.

Features

  • Automatic project root discovery
  • Virtual environment management
  • Dependency installation and uninstallation
  • Requirements locking
  • Command running within the virtual environment
  • Interactive shell with activated virtual environment

Installation

To install uvenv, you need to have Python 3.6+ and uv installed. Then you can install uvenv using pip:

$ pip install uvenv-cli

Usage

uvenv provides the following commands:

Install

Install dependencies or specific packages:

$ uvenv install
$ uvenv install <package1> <package2>

Uninstall

Remove specific packages:

$ uvenv uninstall <package1> <package2>

Lock

Generate or update requirements.txt:

$ uvenv lock

Help

Show help message:

$ uvenv --help

Project Structure

uvenv expects your project to have either a requirements.txt or requirements.in file in the project root. It will automatically discover the project root by searching for these files in the current directory and its parents.

Usage

  1. Start a new project:

    $ mkdir myproject
    $ cd myproject
    $ echo "requests==2.26.0" > requirements.in
    $ uvenv install
    
  2. Add a new package:

    $ uvenv install numpy
    
  3. Remove a package:

    $ uvenv uninstall requests
    
  4. Update locked requirements:

    $ uvenv lock
    

Upcoming features

  1. Run a Python script:

    $ uvenv run python myscript.py
    
  2. Start an interactive shell:

    $ uvenv shell
    

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project will be licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uvenv_cli-0.1.0.tar.gz (6.9 kB view hashes)

Uploaded Source

Built Distribution

uvenv_cli-0.1.0-py2.py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft Sir Raditya Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page