A CLI which aims to provide an npm
-like experience when installing Python packages.
- 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) andsetup.cfg
/pyproject.toml
(production).
- Dependencies are stored in
- When removing a package, also remove its sub-dependencies.
- Easily run commands in the local virtual environment.
- Generate a lock file (
requirements-lock.txt
).
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).
Install:
vpip install
- Create/activate a local venv and install all dependencies.vpip install configupdater
- Create/activate a local venv, installconfigupdater
, and add to production dependency.vpip install -g youtube-dl
- Create a venv under~/.vpip
, installyoutube-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, uninstallpylint
, and removepylint
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.
vpip
is a cross-platform CLI. Please report any compatibility issues.
https://vpip.readthedocs.io/en/latest/index.html
- pipm - which doesn't use virtualenv.
- pipx - like
vpip install -g
. - pdm - a more feature-rich depdenency manager.
- 0.10.0 (Nov 16, 2024)
- Fix: packages only bump major should use
>=
version range. - Fix: use
pip inspect
instead ofpip show
to get package information. - Fix: support editable install for pyproject.toml.
- Fix: don't throw on versions without minor numbers.
- Fix: unable to list global packages if extra is used.
- Fix: packages only bump major should use
- 0.9.2 (Feb 4, 2024)
- Fix: ignore unsupported version number in
list --outdated
.
- Fix: ignore unsupported version number in
- 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.
- Change: now vpip would try to avoid sub-dependencies conflicts by passing all dependencies to
- 0.7.0 (Feb 9, 2022)
- Change: now
wheel
is also pre-installed in venv likepip
.
- Change: now
- 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.
- Fix: make sure the script folder is in env variable path when
- 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
orrequirements.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.
- Fix: generate
- 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
andpip_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
treat0.1.0
and0.2.0
as compatible. - Fix: don't include pre-release when checking updates.
- Update dependencies.
- Fix:
- 0.2.2 (Feb 2, 2019)
- Add:
link
command.
- Add:
- 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