Name | pipxx JSON |
Version |
1.10
JSON |
| download |
home_page | None |
Summary | Wrapper for pipx to add some minor functionality |
upload_time | 2024-03-29 05:48:02 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | GPLv3 |
keywords |
pip
pipx
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
## PIPXX - Wrapper for pipx to add some minor functionality
[![PyPi](https://img.shields.io/pypi/v/pipxx)](https://pypi.org/project/pipxx/)
_**Note: This project has been superceded by my
[pipxu](https://github.com/bulletmark/pipxu) project which is a new
implementation of [`pipx`][pipx] that uses
[uv](https://github.com/astral-sh/uv).**_
[`pipxx`][pipxx] is a simple command line utility to wrap the usage of
[`pipx`][pipx] to provide some minor improved functions. Consider
[`pipxx`][pipxx] a proof of concept of some ideas for [`pipx`][pipx].
1. [Global application installation by
root](#enhancement-1-global-application-installation-by-root).
2. [Enhancement of pipx list
output](#enhancement-2-improved-pipx-list-output).
3. [Automatic determination of pyenv Python path for
install](#enhancement-3-automatic-determination-of-pyenv-python-path-for-install).
4. [Substitution of current directory with package name for
uninstall](#enhancement-4-substitution-of-current-directory-with-package-name-for-uninstall).
See the description of these enhancements below.
`pipxx` is merely a wrapper for `pipx` so takes exactly the same command
line arguments and options. Just run `pipxx` the same as you would run
`pipx`. Type `pipx` or `pipx -h` to view the usage summary for `pipx`
(or type `pipxx` or `pipxx -h` to see the same usage summary).
The latest version and documentation is available at
https://github.com/bulletmark/pipxx.
### Enhancement 1: Global application installation by root
`pipx` is used normally to install applications for a single user. It
can also [install applications
globally](https://pypa.github.io/pipx/installation/#installation-options)
as root but that is [awkward](https://github.com/pypa/pipx/issues/754)
because you have to manually set environment variables. `pipxx`
recognises when it is run as root (or with `sudo`) and automatically
sets appropriate system global `PIPX_BIN_DIR`, `PIPX_MAN_DIR`, and
`PIPX_HOME` directories for `pipx`.
E.g. to install application as normal user:
```bash
$ pipxx install cowsay
```
To install application for all users (i.e. globally):
```bash
$ sudo pipxx install cowsay
```
Note, to see the global directories selected by `pipxx` for your system:
```bash
$ sudo pipxx environment
```
### Enhancement 2: Improved pipx list output
[`pipx list`](https://pypa.github.io/pipx/docs/#pipx-list)
output lacks some useful information. `pipxx` adds the following
to the `pipx list` output:
1. The PyPi package name, or source directory, or VCS URL from where the
application was installed from,
2. Whether the application is installed as
[__editable__](https://pypa.github.io/pipx/docs/#pipx-install).
### Enhancement 3: Automatic determination of pyenv Python path for install
When installing, you can tell `pipx` to use a specific version/path of
Python using the `--python` option. Unfortunately, you have to specify
the full path to the python interpreter you want. Very commonly,
[`pyenv`](https://github.com/pyenv/pyenv) is used to install multiple
versions of Python.
So to use a specific pyenv Python version with `pipx` you have to type:
```sh
$ pipx install --python ~/.pyenv/versions/3.12.0/bin/python cowsay
```
With `pipxx` you merely have to type:
```sh
$ pipxx install --python 3.12 cowsay
```
I.e. `pipxx` will work out from `3.12` that you want the path
`~/.pyenv/versions/3.12.0/bin/python`, i.e. the latest `3.12` version
installed at the time of this example. You could alternately type `pipxx
install --python 3 cowsay`, or `pipxx install --python 3.12.0 cowsay`.
Note the automatically selected path is dependent on your
system/installation and is derived by `pipxx` from the output of `pyenv
root`.
Actually, `--python` is a commonly used option but unfortunately `pipx`
does not provide a short-form option for it. So `pipxx` also adds `-P`
as an alias for `--python` allowing you to simply type:
```sh
$ pipxx install -P 3.12 cowsay
```
Note that `pipxx` also adds a description of the added pyenv version
option and the added `-P` alias option to the `install --help` output.
### Enhancement 4: Substitution of current directory with package name for uninstall
Developers often use `pipx` to install and run an application they are
working on from a local source directory. E.g. for an example
application `myapp`:
```sh
$ pwd
/home/myname/src/myapp
$ pipx install -e .
installed package myapp <...>
```
To uninstall this application you have to type `pipx uninstall myapp`.
However, thinking symmetrically, you would expect `pipx uninstall .`
would suffice. So `pipxx` adds the ability to do this:
```sh
$ pipxx uninstall .
uninstalled myapp!
```
## Installation or upgrade or removal
Note [pipxx is on PyPI](https://pypi.org/project/pipxx/) so just ensure
that [`pipx`](https://pypa.github.io/pipx/) is installed then type the
following:
To install:
```bash
$ pipx install pipxx
```
To upgrade:
```bash
$ pipx upgrade pipxx
```
To remove:
```bash
$ pipx uninstall pipxx
```
`pipxx` requires Python >= 3.7 and requires no 3rd party packages. It
requires that `pipx` is in your `$PATH`.
## License
Copyright (C) 2023 Mark Blakeney. This program is distributed under the
terms of the GNU General Public License.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or any later
version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License at <http://www.gnu.org/licenses/> for more details.
[pipxx]: https://github.com/bulletmark/pipxx
[pipx]: https://pipx.pypa.io/stable/
<!-- vim: se ai syn=markdown: -->
Raw data
{
"_id": null,
"home_page": null,
"name": "pipxx",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "pip, pipx",
"author": null,
"author_email": "Mark Blakeney <mark.blakeney@bullet-systems.net>",
"download_url": "https://files.pythonhosted.org/packages/19/23/16a82688edb9765ab9924cd7cc846ccf8bfb3decef49998a9f6b76308f5d/pipxx-1.10.tar.gz",
"platform": null,
"description": "## PIPXX - Wrapper for pipx to add some minor functionality\n[![PyPi](https://img.shields.io/pypi/v/pipxx)](https://pypi.org/project/pipxx/)\n\n_**Note: This project has been superceded by my\n[pipxu](https://github.com/bulletmark/pipxu) project which is a new\nimplementation of [`pipx`][pipx] that uses\n[uv](https://github.com/astral-sh/uv).**_\n\n[`pipxx`][pipxx] is a simple command line utility to wrap the usage of\n[`pipx`][pipx] to provide some minor improved functions. Consider\n[`pipxx`][pipxx] a proof of concept of some ideas for [`pipx`][pipx].\n\n1. [Global application installation by\n root](#enhancement-1-global-application-installation-by-root).\n2. [Enhancement of pipx list\n output](#enhancement-2-improved-pipx-list-output).\n3. [Automatic determination of pyenv Python path for\n install](#enhancement-3-automatic-determination-of-pyenv-python-path-for-install).\n4. [Substitution of current directory with package name for\n uninstall](#enhancement-4-substitution-of-current-directory-with-package-name-for-uninstall).\n\nSee the description of these enhancements below.\n\n`pipxx` is merely a wrapper for `pipx` so takes exactly the same command\nline arguments and options. Just run `pipxx` the same as you would run\n`pipx`. Type `pipx` or `pipx -h` to view the usage summary for `pipx`\n(or type `pipxx` or `pipxx -h` to see the same usage summary).\n\nThe latest version and documentation is available at\nhttps://github.com/bulletmark/pipxx.\n\n### Enhancement 1: Global application installation by root\n\n`pipx` is used normally to install applications for a single user. It\ncan also [install applications\nglobally](https://pypa.github.io/pipx/installation/#installation-options)\nas root but that is [awkward](https://github.com/pypa/pipx/issues/754)\nbecause you have to manually set environment variables. `pipxx`\nrecognises when it is run as root (or with `sudo`) and automatically\nsets appropriate system global `PIPX_BIN_DIR`, `PIPX_MAN_DIR`, and\n`PIPX_HOME` directories for `pipx`.\n\nE.g. to install application as normal user:\n\n```bash\n$ pipxx install cowsay\n```\n\nTo install application for all users (i.e. globally):\n\n```bash\n$ sudo pipxx install cowsay\n```\n\nNote, to see the global directories selected by `pipxx` for your system:\n\n```bash\n$ sudo pipxx environment\n ```\n\n### Enhancement 2: Improved pipx list output\n\n[`pipx list`](https://pypa.github.io/pipx/docs/#pipx-list)\noutput lacks some useful information. `pipxx` adds the following\nto the `pipx list` output:\n\n1. The PyPi package name, or source directory, or VCS URL from where the\n application was installed from,\n2. Whether the application is installed as\n [__editable__](https://pypa.github.io/pipx/docs/#pipx-install).\n\n### Enhancement 3: Automatic determination of pyenv Python path for install\n\nWhen installing, you can tell `pipx` to use a specific version/path of\nPython using the `--python` option. Unfortunately, you have to specify\nthe full path to the python interpreter you want. Very commonly,\n[`pyenv`](https://github.com/pyenv/pyenv) is used to install multiple\nversions of Python.\n\nSo to use a specific pyenv Python version with `pipx` you have to type:\n\n```sh\n$ pipx install --python ~/.pyenv/versions/3.12.0/bin/python cowsay\n```\n\nWith `pipxx` you merely have to type:\n\n```sh\n$ pipxx install --python 3.12 cowsay\n```\n\nI.e. `pipxx` will work out from `3.12` that you want the path\n`~/.pyenv/versions/3.12.0/bin/python`, i.e. the latest `3.12` version\ninstalled at the time of this example. You could alternately type `pipxx\ninstall --python 3 cowsay`, or `pipxx install --python 3.12.0 cowsay`.\n\nNote the automatically selected path is dependent on your\nsystem/installation and is derived by `pipxx` from the output of `pyenv\nroot`.\n\nActually, `--python` is a commonly used option but unfortunately `pipx`\ndoes not provide a short-form option for it. So `pipxx` also adds `-P`\nas an alias for `--python` allowing you to simply type:\n\n```sh\n$ pipxx install -P 3.12 cowsay\n```\n\nNote that `pipxx` also adds a description of the added pyenv version\noption and the added `-P` alias option to the `install --help` output.\n\n### Enhancement 4: Substitution of current directory with package name for uninstall\n\nDevelopers often use `pipx` to install and run an application they are\nworking on from a local source directory. E.g. for an example\napplication `myapp`:\n\n```sh\n$ pwd\n/home/myname/src/myapp\n$ pipx install -e .\ninstalled package myapp <...>\n```\n\nTo uninstall this application you have to type `pipx uninstall myapp`.\nHowever, thinking symmetrically, you would expect `pipx uninstall .`\nwould suffice. So `pipxx` adds the ability to do this:\n\n\n```sh\n$ pipxx uninstall .\nuninstalled myapp!\n```\n\n## Installation or upgrade or removal\n\nNote [pipxx is on PyPI](https://pypi.org/project/pipxx/) so just ensure\nthat [`pipx`](https://pypa.github.io/pipx/) is installed then type the\nfollowing:\n\nTo install:\n\n```bash\n$ pipx install pipxx\n```\n\nTo upgrade:\n\n```bash\n$ pipx upgrade pipxx\n```\n\nTo remove:\n\n```bash\n$ pipx uninstall pipxx\n```\n\n`pipxx` requires Python >= 3.7 and requires no 3rd party packages. It\nrequires that `pipx` is in your `$PATH`.\n\n## License\n\nCopyright (C) 2023 Mark Blakeney. This program is distributed under the\nterms of the GNU General Public License.\nThis program is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation, either version 3 of the License, or any later\nversion.\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License at <http://www.gnu.org/licenses/> for more details.\n\n[pipxx]: https://github.com/bulletmark/pipxx\n[pipx]: https://pipx.pypa.io/stable/\n\n<!-- vim: se ai syn=markdown: -->\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "Wrapper for pipx to add some minor functionality",
"version": "1.10",
"project_urls": {
"Homepage": "https://github.com/bulletmark/pipxx"
},
"split_keywords": [
"pip",
" pipx"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "aee73a1e3cdda59f1ec28cd80af0728778d493b3718646921cde5a181d6330fb",
"md5": "84039da8e5aa70bb6a008d139d22759e",
"sha256": "d556c5dcffdf86057a02824ebfda06aa8b13bc8305ab72f51f398f0a5a164ad8"
},
"downloads": -1,
"filename": "pipxx-1.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "84039da8e5aa70bb6a008d139d22759e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 5920,
"upload_time": "2024-03-29T05:47:57",
"upload_time_iso_8601": "2024-03-29T05:47:57.292127Z",
"url": "https://files.pythonhosted.org/packages/ae/e7/3a1e3cdda59f1ec28cd80af0728778d493b3718646921cde5a181d6330fb/pipxx-1.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "192316a82688edb9765ab9924cd7cc846ccf8bfb3decef49998a9f6b76308f5d",
"md5": "e6e6d7d3fd7fea25abca36cc583596e8",
"sha256": "06dc4e65a0315993fb54d1dcd493277cb012911cb1641dd3990ddd83c3adaf32"
},
"downloads": -1,
"filename": "pipxx-1.10.tar.gz",
"has_sig": false,
"md5_digest": "e6e6d7d3fd7fea25abca36cc583596e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 6360,
"upload_time": "2024-03-29T05:48:02",
"upload_time_iso_8601": "2024-03-29T05:48:02.116533Z",
"url": "https://files.pythonhosted.org/packages/19/23/16a82688edb9765ab9924cd7cc846ccf8bfb3decef49998a9f6b76308f5d/pipxx-1.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-29 05:48:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bulletmark",
"github_project": "pipxx",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pipxx"
}