Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eight04/vpip
A CLI which aims to provide an npm-like experience when installing Python packages.
https://github.com/eight04/vpip
packaging pip python python3 venv virtualenv
Last synced: 2 months ago
JSON representation
A CLI which aims to provide an npm-like experience when installing Python packages.
- Host: GitHub
- URL: https://github.com/eight04/vpip
- Owner: eight04
- License: mit
- Created: 2018-11-12T19:49:30.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T16:03:42.000Z (6 months ago)
- Last Synced: 2024-10-11T23:33:10.187Z (3 months ago)
- Topics: packaging, pip, python, python3, venv, virtualenv
- Language: Python
- Size: 115 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
vpip
====.. image:: https://github.com/eight04/vpip/actions/workflows/build.yml/badge.svg
:target: https://github.com/eight04/vpip/actions/workflows/build.yml
:alt: Build status.. image:: https://readthedocs.org/projects/vpip/badge/?version=latest
:target: https://vpip.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://img.shields.io/pypi/v/vpip.svg
:alt: PyPI
:target: https://pypi.org/project/vpipA CLI which aims to provide an ``npm``-like experience when installing Python packages.
Features
--------* Install packages to isolated global virtual environments.
- Executables are linked to the Python Scripts folder so you can still use the CLI without activating the venv.
- This allows you to install different CLI tools without worrying about dependency conflicts.
* Install packages to a local virtual environment.- Dependencies are stored in ``requirements.txt`` (development) and ``setup.cfg``/``pyproject.toml`` (production).
* When removing a package, also remove its sub-dependencies.
* Easily run commands in the local virtual environment.
* Generate a lock file (``requirements-lock.txt``).Installation
------------``vpip`` is hosted on pypi::
pip install vpip
After installing vpip as a CLI, you can use it to install other packages (globally or locally).
Usage example
-------------Install:
* ``vpip install`` - Create/activate a local venv and install all dependencies.
* ``vpip install configupdater`` - Create/activate a local venv, install ``configupdater``, and add to production dependency.
* ``vpip install -g youtube-dl`` - Create a venv under ``~/.vpip``, install ``youtube-dl``, and link the executable (``youtube-dl.exe``) to the script folder.
* ``vpip install -g https://github.com/eight04/ComicCrawler/archive/refs/heads/master.zip`` - You can also install global CLI from a URL.Uninstall:
* ``vpip uninstall pylint`` - Activate the local venv, uninstall ``pylint``, and remove ``pylint`` from both dev/prod dependency.
Update:
* ``vpip update pylint`` - Upgrade pylint to the compatible version.
* ``vpip update pylint --latest`` - Upgrade pylint to the latest release.Execute command:
* ``vpip run python`` - Launch python REPL in the local venv.
* ``vpip run pylint my_proj`` - Run pylint installed in the local venv.List dependencies:
* ``vpip list`` - List development/production dependencies.
* ``vpip list --outdated`` - List development/production dependencies that are outdated.
* ``vpip list -g`` - List globally installed packages.Compatibility
--------------``vpip`` is a cross-platform CLI. Please report any compatibility issues.
Documentation
-------------https://vpip.readthedocs.io/en/latest/index.html
Similar projects
----------------* `pipm `_ - which doesn't use virtualenv.
* `pipx `_ - like ``vpip install -g``.
* `pdm `_ - a more feature-rich depdenency manager.Changelog
---------* 0.9.2 (Feb 4, 2024)
- Fix: ignore unsupported version number in ``list --outdated``.
* 0.9.1 (Oct 22, 2023)
- Fix: type error on Python 3.9
* 0.9.0 (Oct 22, 2023)
- Change: bump to python>=3.9, update dependencies.
- Add: support ``pyproject.toml``.
- Add: ``link`` command now accepts an optional package name.
- Fix: ``install -g`` error when using a specifier.
- Fix: JSON error in ``pip_api.list_``.* 0.8.0 (Apr 23, 2022)
- Change: now vpip would try to avoid sub-dependencies conflicts by passing all dependencies to ``pip install`` when installing/updating packages.
- Fix: now ``vpip update`` won't install packages whose env marker evaluates to false.* 0.7.0 (Feb 9, 2022)
- Change: now ``wheel`` is also pre-installed in venv like ``pip``.
* 0.6.0 (Jan 25, 2022)
- Fix: make sure the script folder is in env variable path when ``vpip link``.
- Add: support installing global CLI from a URL.
- Change: ``pip_api.install`` now accepts multiple packages.
- Change: ``vpip update`` now updates sub-dependencies.* 0.5.0 (Jan 5, 2022)
- Change: bump to [email protected]+
- Change: drop pkg_resources, improve performance.
- Change: don't use pip internal when finding global scripts folder.
- Fix: use utf8 encoding when reading/writing ``setup.cfg`` or ``requirements.txt``.* 0.4.3 (Jan 31, 2020)
- Fix: don't break sub-dependencies when uninstall.
* 0.4.2 (Nov 9, 2019)
- Fix: generate ``setup.py`` automatically if needed.
- Fix: use utf8 encoding when parsing pip output.* 0.4.1 (Nov 2, 2019)
- Nothing is changed. Updated README and corrected some errors.
* 0.4.0 (Nov 1, 2019)
- Fix: rebuild egg files after doing an incompatible update.
- Fix: clean unused packages after uninstall.
- Add: ``update_venv`` command.
- Breaking: ``pip_api.show`` and ``pip_api.uninstall`` now accept multiple packages.* 0.3.0 (Oct 31, 2019)
- **Support Unix system.**
- **Add: generate a lock file.*** 0.2.3 (Feb 10, 2019)
- Fix: ``pypi.is_compatible`` treat ``0.1.0`` and ``0.2.0`` as compatible.
- Fix: don't include pre-release when checking updates.
- Update dependencies.* 0.2.2 (Feb 2, 2019)
- Add: ``link`` command.
* 0.2.1 (Nov 16, 2018)
- Add: user defined commands.
* 0.2.0 (Nov 16, 2018)
- Add documentation.
- Change: console scripts will be overwritten by default, matching pip's default behavior.* 0.1.0 (Nov 13, 2018)
- First release