Releases: pypa/pipx
Releases · pypa/pipx
0.16.3
- Organization: pipx is extremely pleased to now be a project of the Python Packaging Authority (PyPA)! Note that our github URL has changed to pypa/pipx
- Fixed
pipx list --jsonto return valid json with no venvs installed. Previously would return an empty string to stdout. (#681) - Changed
pipx ensurepathbash behavior so that only one of {~/.profile,~/.bash\_profile} is modified with the extra pipx paths, not both. Previously, if a.bash_profilefile was created where one didn't exist, it could cause problems, e.g. #456. The internal change is to use userpath v1.5.0 or greater. (#684) - Changed default nox tests, Github Workflow tests, and pytest behavior to use local pypi server with fixed lists of available packages. This allows greater test isolation (no network pypi access needed) and determinism (fixed available dependencies.) It also allows running the tests offline with some extra preparation beforehand (See Running Unit Tests Offline). The old style tests that use the internet to access pypi.org are still available using
nox -s tests_internetorpytest --net-pypiserver tests. (#686)
- Colorama is now only installed on Windows. (#691)
0.16.2.1
- Changed non-venv-info warnings and notices from
pipx listto print to stderr. This especially preventspipx list --jsonfrom printing invalid json to stdout. (#680) - Fixed bug that could cause uninstall on Windows with injected packages to uninstall too many apps from the local binary directory. (#679)
0.16.2.0
- Fixed bug #670 where uninstalling a venv could erroneously uninstall other apps from the local binary directory. (#672)
- Added
--jsonswitch topipx listto output rich json-metadata for all venvs. - Ensured log files are utf-8 encoded to preven Unicode encoding errors from occurring with emojis. (#646)
- Fixed issue which made pipx incorrectly list apps as part of a venv when they were not installed by pipx. (#650)
- Fixed old regression that would prevent pipx uninstall from cleaning up linked binaries if the venv was old and did not have pipx metadata. (#651)
- Fixed bugs with suffixed-venvs on Windows. Now properly summarizes install, and actually uninstalls associated binaries for suffixed-venvs. (#653)
- Changed venv minimum python version to 3.6, removing python 3.5 which is End of Life. (#666)
0.16.1.0
- Introduce the
pipx.runentry point group as an alternative way to declare an application forpipx run. (#615) - Fix cursor show/hide to work with older versions of Windows. (#610)
- Support text colors on Windows. (#612)
- Better platform unicode detection to avoid errors and allow showing emojis when possible. (#614)
- Don't emit show cursor or hide cursor codes if STDERR is not a tty. (#620)
- Sped up
pipx list(#624). - pip errors no longer stream to the shell when pip fails during a pipx install. pip's output is now saved to a log file. In the shell, pipx will tell you the location of the log file and attempt to summarize why pip failed. (#625)
- For
reinstall-all, fixed bug where missing python executable would cause error. (#634) - Fix regression which prevented pipx from working with pythonloc (and
__pypackages__folder). (#636)
0.16.0.0
- New venv inspection! The code that pipx uses to examine and determine metadata in an installed venv has been made faster, better, and more reliable. It now uses modern python libraries like
packagingandimportlib.metadatato examine installed venvs. It also now properly handles installed package extras. In addition, some problems pipx has had with certain characters (like periods) in package names should be remedied. - Added reinstall command for reinstalling a single venv.
- Changed
pipx runon non-Windows systems to actually replace pipx process with the app process instead of running it as a subprocess. (Now using python'sos.exec*) - [bugfix] Fixed bug with reinstall-all command when package have been installed using a specifier. Now the initial specifier is used.
- [bugfix] Override display of
PIPX_DEFAULT_PYTHONvalue when generating web documentation forpipx install#523 - [bugfix] Wrap help documentation for environment variables.
- [bugfix] Fixed uninstall crash that could happen on Windows for certain packages
- [feature] Venv package name arguments now do not have to match exactly as pipx has them stored, but can be specified in any python-package-name-equivalent way. (i.e. case does not matter, and
.,-,_characters are interchangeable.) - [change] Venvs with a suffix: A suffix can contain any characters, but for purposes of uniqueness, python package name rules apply--upper- and lower-case letters are equivalent, and any number of
.,-, or_characters in a row are equivalent. (e.g. if you have a suffixed venvpylint_1.0Ayou could not add another suffixed venv calledpylint--1-0a, as it would not be a unique name.) - [implementation detail] Pipx shared libraries (providing pip, setuptools, wheel to pipx) are no longer installed using pip arguments taken from the last regular pipx install. If you need to apply pip arguments to pipx's use of pip for its internal shared libraries, use PIP_* environment variables.
- [feature] Autocomplete for venv names is no longer restricted to an exact match to the literal venv name, but will autocomplete any logically-similar python package name (i.e. case does not matter, and
.,-,_characters are all equivalent.) - pipx now reinstalls its internal shared libraries when the user executes
reinstall-all. - Made sure shell exit codes from every pipx command are correct. In the past some (like from
pipx upgrade) were wrong. The exit code frompipx runpipis now the exit code from thepipcommand run. The exit code frompipx listwill be 1 if one or more venvs have problems that need to be addressed. - pipx now writes a log file for each pipx command executed to
$PIPX_HOME/logs, typically~/.local/pipx/logs. pipx keeps the most recent 10 logs and deletes others. pipx upgradeandpipx upgrade-allnow have a--upgrade-injectedoption which directs pipx to also upgrade injected packages.pipx listnow detects, identifies, and suggests a remedy for venvs with old-internal data (internal venv names) that need to be updated.- Added a "Troubleshooting" page to the pipx web documentation for common problems pipx users may encounter.
- pipx error, warning, and other messages now word-wrap so words are not split across lines. Their appearance is also now more consistent.
0.15.6.0
- [docs] Update license
- [bugfix] Fixed regression in list, inject, upgrade, reinstall-all commands when suffixed packages are used.
- [bugfix] Do not reset package url during upgrade when main package is
pipx - Updated help text to show description for
ensurepathandcompletionshelp - Added support for user-defined default python interpreter via new PIPX_DEFAULT_PYTHON. Helpful for use with pyenv among other uses.
- [bugfix] Fixed bug where extras were ignored with a PEP 508 package specification with a URL.
0.15.5.1
- [bugfix] Fixed regression of 0.15.5.0 which erroneously made installing from a local path with package extras not possible.
0.15.5.0
- [feature] Version of each injected package is now listed after name for
pipx list --include-injected - [feature]
--suffixoption forinstallto allow multiple versions of same tool to be installed (#445) - [feature]
ensurepathnow also ensures that pip user binary path containing pipx itself is in user's PATH if pipx was installed usingpip install --user. - Change metadata recorded from version-specified app install to allow upgrades in future. Adds pipx dependency on
packagingpackage. - pipx now parses package specification before install. It removes (with warning) the
--editableinstall option for any package specification that is not a local path. It also removes (with warning) any environment markers. - Disabled animation when we cannot determine terminal size or if the number of columns is too small. (Fixes #444)
- [bugfix] Prevent python error in case where package has no pipx metadata and advise user how to fix.
- [bugfix] For
pipx install, fixed failure to install if user hasPIP_USER=1oruser=truein pip.conf. (#110) - [bugfix] Requiring userpath v1.4.1 or later so ensure Windows bug is fixed for
ensurepath(#437) - [feature] pipx logs its own version in verbose mode (#423)