pipxx


Namepipxx JSON
Version 1.10 PyPI version JSON
download
home_pageNone
SummaryWrapper for pipx to add some minor functionality
upload_time2024-03-29 05:48:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseGPLv3
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"
}
        
Elapsed time: 4.03126s