{"id":16332809,"url":"https://github.com/eight04/vpip","last_synced_at":"2025-03-16T14:31:12.397Z","repository":{"id":33274972,"uuid":"157267586","full_name":"eight04/vpip","owner":"eight04","description":"A CLI which aims to provide an npm-like experience when installing Python packages.","archived":false,"fork":false,"pushed_at":"2024-12-29T12:30:20.000Z","size":162,"stargazers_count":4,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T12:19:14.602Z","etag":null,"topics":["packaging","pip","python","python3","venv","virtualenv"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eight04.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-12T19:49:30.000Z","updated_at":"2024-12-29T12:30:24.000Z","dependencies_parsed_at":"2024-02-05T16:59:50.911Z","dependency_job_id":"ba63a732-1243-429a-b258-32de887c4e45","html_url":"https://github.com/eight04/vpip","commit_stats":{"total_commits":102,"total_committers":2,"mean_commits":51.0,"dds":"0.019607843137254943","last_synced_commit":"6ddad38515494f9b2843787aa3089bbd6040221c"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eight04%2Fvpip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eight04%2Fvpip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eight04%2Fvpip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eight04%2Fvpip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eight04","download_url":"https://codeload.github.com/eight04/vpip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243818194,"owners_count":20352629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["packaging","pip","python","python3","venv","virtualenv"],"created_at":"2024-10-10T23:33:06.328Z","updated_at":"2025-03-16T14:31:12.391Z","avatar_url":"https://github.com/eight04.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"vpip\n====\n\n.. image:: https://github.com/eight04/vpip/actions/workflows/build.yml/badge.svg\n   :target: https://github.com/eight04/vpip/actions/workflows/build.yml\n   :alt: Build status\n\n.. image:: https://readthedocs.org/projects/vpip/badge/?version=latest\n  :target: https://vpip.readthedocs.io/en/latest/?badge=latest\n  :alt: Documentation Status\n  \n.. image:: https://img.shields.io/pypi/v/vpip.svg\n  :alt: PyPI\n  :target: https://pypi.org/project/vpip\n\nA CLI which aims to provide an ``npm``-like experience when installing Python packages.\n\nFeatures\n--------\n\n* Install packages to isolated global virtual environments.\n\n  - Executables are linked to the Python Scripts folder so you can still use the CLI without activating the venv.\n  - This allows you to install different CLI tools without worrying about dependency conflicts.\n    \n* Install packages to a local virtual environment.\n\n  - Dependencies are stored in ``requirements.txt`` (development) and ``setup.cfg``/``pyproject.toml`` (production).\n  \n* When removing a package, also remove its sub-dependencies.\n* Easily run commands in the local virtual environment.\n* Generate a lock file (``requirements-lock.txt``).\n\nInstallation\n------------\n\n``vpip`` is hosted on pypi::\n\n  pip install vpip\n  \nAfter installing vpip as a CLI, you can use it to install other packages (globally or locally).\n    \nUsage example\n-------------\n\nInstall:\n\n* ``vpip install`` - Create/activate a local venv and install all dependencies.\n* ``vpip install configupdater`` - Create/activate a local venv, install ``configupdater``, and add to production dependency.\n* ``vpip install -g youtube-dl`` - Create a venv under ``~/.vpip``, install ``youtube-dl``, and link the executable (``youtube-dl.exe``) to the script folder.\n* ``vpip install -g https://github.com/eight04/ComicCrawler/archive/refs/heads/master.zip`` - You can also install global CLI from a URL.\n\nUninstall:\n\n* ``vpip uninstall pylint`` - Activate the local venv, uninstall ``pylint``, and remove ``pylint`` from both dev/prod dependency.\n\nUpdate:\n\n* ``vpip update pylint`` - Upgrade pylint to the compatible version.\n* ``vpip update pylint --latest`` - Upgrade pylint to the latest release.\n\nExecute command:\n\n* ``vpip run python`` - Launch python REPL in the local venv.\n* ``vpip run pylint my_proj`` - Run pylint installed in the local venv.\n\nList dependencies:\n\n* ``vpip list`` - List development/production dependencies.\n* ``vpip list --outdated`` - List development/production dependencies that are outdated.\n* ``vpip list -g`` - List globally installed packages.\n\nCompatibility\n--------------\n\n``vpip`` is a cross-platform CLI. Please report any compatibility issues.\n\nDocumentation\n-------------\n\nhttps://vpip.readthedocs.io/en/latest/index.html\n\nSimilar projects\n----------------\n\n* `pipm \u003chttps://github.com/jnoortheen/pipm\u003e`_ - which doesn't use virtualenv.\n* `pipx \u003chttps://github.com/pypa/pipx\u003e`_ - like ``vpip install -g``.\n* `pdm \u003chttps://github.com/pdm-project/pdm\u003e`_ - a more feature-rich depdenency manager.\n\nChangelog\n---------\n\n* 0.10.1 (Dec 29, 2024)\n\n  - Fix: use ``VIRTUAL_ENV`` env variable when building ``inspect()`` cache.\n  - Fix: try to search script folder in ``base_exec_prefix``.\n\n* 0.10.0 (Nov 16, 2024)\n\n  - Fix: packages only bump major should use ``\u003e=`` version range.\n  - Fix: use ``pip inspect`` instead of ``pip show`` to get package information.\n  - Fix: support editable install for pyproject.toml.\n  - Fix: don't throw on versions without minor numbers.\n  - Fix: unable to list global packages if extra is used.\n\n* 0.9.2 (Feb 4, 2024)\n\n  - Fix: ignore unsupported version number in ``list --outdated``.\n\n* 0.9.1 (Oct 22, 2023)\n\n  - Fix: type error on Python 3.9\n\n* 0.9.0 (Oct 22, 2023)\n\n  - Change: bump to python\u003e=3.9, update dependencies.\n  - Add: support ``pyproject.toml``.\n  - Add: ``link`` command now accepts an optional package name.\n  - Fix: ``install -g`` error when using a specifier.\n  - Fix: JSON error in ``pip_api.list_``.\n\n* 0.8.0 (Apr 23, 2022)\n\n  - Change: now vpip would try to avoid sub-dependencies conflicts by passing all dependencies to ``pip install`` when installing/updating packages.\n  - Fix: now ``vpip update`` won't install packages whose env marker evaluates to false.\n\n* 0.7.0 (Feb 9, 2022)\n\n  - Change: now ``wheel`` is also pre-installed in venv like ``pip``.\n\n* 0.6.0 (Jan 25, 2022)\n\n  - Fix: make sure the script folder is in env variable path when ``vpip link``.\n  - Add: support installing global CLI from a URL.\n  - Change: ``pip_api.install`` now accepts multiple packages.\n  - Change: ``vpip update`` now updates sub-dependencies.\n\n* 0.5.0 (Jan 5, 2022)\n\n  - Change: bump to python@3.7+\n  - Change: drop pkg_resources, improve performance.\n  - Change: don't use pip internal when finding global scripts folder.\n  - Fix: use utf8 encoding when reading/writing ``setup.cfg`` or ``requirements.txt``.\n\n* 0.4.3 (Jan 31, 2020)\n\n  - Fix: don't break sub-dependencies when uninstall.\n\n* 0.4.2 (Nov 9, 2019)\n\n  - Fix: generate ``setup.py`` automatically if needed.\n  - Fix: use utf8 encoding when parsing pip output.\n\n* 0.4.1 (Nov 2, 2019)\n\n  - Nothing is changed. Updated README and corrected some errors.\n\n* 0.4.0 (Nov 1, 2019)\n\n  - Fix: rebuild egg files after doing an incompatible update.\n  - Fix: clean unused packages after uninstall.\n  - Add: ``update_venv`` command.\n  - Breaking: ``pip_api.show`` and ``pip_api.uninstall`` now accept multiple packages.\n\n* 0.3.0 (Oct 31, 2019)\n\n  - **Support Unix system.**\n  - **Add: generate a lock file.**\n\n* 0.2.3 (Feb 10, 2019)\n\n  - Fix: ``pypi.is_compatible`` treat ``0.1.0`` and ``0.2.0`` as compatible.\n  - Fix: don't include pre-release when checking updates.\n  - Update dependencies.\n\n* 0.2.2 (Feb 2, 2019)\n\n  - Add: ``link`` command.\n\n* 0.2.1 (Nov 16, 2018)\n\n  - Add: user defined commands.\n\n* 0.2.0 (Nov 16, 2018)\n\n  - Add documentation.\n  - Change: console scripts will be overwritten by default, matching pip's default behavior.\n\n* 0.1.0 (Nov 13, 2018)\n\n  - First release\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feight04%2Fvpip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feight04%2Fvpip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feight04%2Fvpip/lists"}