{ "info": { "author": "Matt Bullock", "author_email": "m@ttsb42.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython" ], "description": "############\npipx-in-pipx\n############\n\n.. image:: https://img.shields.io/pypi/v/pipipxx.svg\n :target: https://pypi.python.org/pypi/pipipxx\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/pyversions/pipipxx.svg\n :target: https://pypi.python.org/pypi/pipipxx\n :alt: Supported Python Versions\n\n.. image:: https://img.shields.io/badge/code_style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: Code style: black\n\n\n+----------+-----------------+---------------------------------+\n| docs | read-the-docs | |Read The Docs| |\n+----------+-----------------+---------------------------------+\n| linux | static analysis | |Travis CI| |\n+----------+-----------------+---------------------------------+\n| linux | CPython 3.7 | |CodeBuild Linux CPython 3.7| |\n+----------+-----------------+---------------------------------+\n| windows | CPython 3.7 | |CodeBuild Windows CPython 3.7| |\n+----------+-----------------+---------------------------------+\n\n\n.. |Read The Docs| image:: https://readthedocs.org/projects/pipx-in-pipx/badge/\n :target: https://pipx-in-pipx.readthedocs.io/\n :alt: Documentation Status\n.. |Travis CI| image:: https://travis-ci.org/mattsb42/pipx-in-pipx.svg?branch=master\n :target: https://travis-ci.org/mattsb42/pipx-in-pipx\n :alt: Travis CI Test Status\n.. |CodeBuild Linux CPython 3.7| image:: https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiZi9uT0MrNGNXV2RSbitIdTBhM1BXTDBSR2ZjbEZmK3lBTmUxS1hkbUc5azFXVDIwdnFOdjRwUG95QnNHUDFwV0xjemhXcDcvVjdaNFEweGdVRFBsdEZNPSIsIml2UGFyYW1ldGVyU3BlYyI6Ik9TRWdNbmpMKzRwZGxvMUIiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master\n :target: https://us-west-2.console.aws.amazon.com/codesuite/codebuild/projects/LinuxCodeBuild-s5JgvxjQs15C/history?region=us-west-2\n :alt: Linux Python 3.7\n.. |CodeBuild Windows CPython 3.7| image:: https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiQ1BUdWNIamZaZUpnRkVBdTZxbmJkNmVrMnpCWnlBbFZvVkcyNmp1cG1tZ2dkVzVMYzR1OHE1VnRmZTFSaGhLQ29vK2ZPZEJvKzJwWFhVVTdIZ2dzNjVnPSIsIml2UGFyYW1ldGVyU3BlYyI6Ildkdkw3OW5zdmRmTFQydVAiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master\n :target: https://us-west-2.console.aws.amazon.com/codesuite/codebuild/projects/WindowsCodeBuild-BVQ5nOqkXcWR/history?region=us-west-2\n :alt: Linux Python 3.7\n\n\n`pipx`_ is great for keeping your CLI tools isolated and your system Python paths clean.\nHowever, it still requires that you install `pipx`_ *itself* in your system Python.\n\nBut `pipx`_ is a CLI tool installed through ``pip``...why not install `pipx`_ with `pipx`_?\nWhy not indeed!\n\n\nWith ``pipx-in-pipx``, all you need to do is install :\n\n.. code:: shell\n\n $ pip install pipx-in-pipx\n\nBut wait! You say.\nDidn't you just say that we shouldn't install things to system Python?\n\nYes.\nWhat ``pipx-in-pipx`` actually does is slightly (but only slightly) evil.\nRather than actually installing anything when you run \"install\",\n``pipx-in-pipx`` instead builds a temporary virtual environment,\ninstalls `pipx`_ there,\nand then uses *that* `pipx`_ to install `pipx`_ in your user local space,\njust like any other `pipx`_-installed tool.\n\nWhat you end up with is a `pipx`_ installation that is *itself* managed by `pipx`_.\n\n\nSharp Edges\n***********\n\nWhich Python?\n=============\n\nBy default, `pipx`_ uses its own Python for each environment that it creates.\nNormally, this would be the system Python, whatever it was when you installed `pipx`_.\nHowever, when your are using a ``pipx-in-pipx``-installed `pipx`_,\nthe default Python that `pipx`_ uses for each environment it creates is instead\nwhatever Python you used to \"install\" ``pipx-in-pipx``.\n\nThis has two notable side effects:\n\n#. If you uninstall your `pipx`_-managed `pipx`_,\n then all of the tools that you installed using that `pipx`_ will stop working\n because their Pythons suddenly point to nothing.\n#. If you want to change the Python used by all of your `pipx`_-managed tools,\n you only need to reinstall one of them (`pipx`_) rather than reinstalling all of them.\n\n\nUninstalling\n============\n\n`pipx`_ has a handy feature to uninstall *all* `pipx`_-managed tools.\nBecause you have now made `pipx`_ manage itself,\nrunning ``pipx uninstall-all`` *will also* uninstall `pipx`_.\n\nThis is not a bug, but a feature.\nBy installing `pipx`_ using ``pipx-in-pipx``,\nyou have expressed an intent that you *want* `pipx`_ to manage itself.\nIf that's not what you want, this is not the tool for you.\n\nIf you at any point uninstall your `pipx`_-managed `pipx`_,\nyou can simply ``pip install pipx-in-pipx`` again to rebuild it.\n\n\n.. _pipx: https://pipxproject.github.io/pipx/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mattsb42/pipipxx", "keywords": "pipipxx pipx", "license": "Apache 2.0", "maintainer": "Matt Bullock", "maintainer_email": "", "name": "pipipxx", "package_url": "https://pypi.org/project/pipipxx/", "platform": "", "project_url": "https://pypi.org/project/pipipxx/", "project_urls": { "Homepage": "https://github.com/mattsb42/pipipxx" }, "release_url": "https://pypi.org/project/pipipxx/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "pipipxx (pronounced pipx in pipx): Bootstrap your pipx with pipx.", "version": "1.0.1", "yanked": false, "yanked_reason": null }, "last_serial": 6037962, "releases": { "0.0.1b0": [ { "comment_text": "", "digests": { "md5": "b924ec9536aad515d6307bf603e9fe52", "sha256": "de25ec6591906b543750c0b5f7c7058a77792dfa6b7c3ba2c6a805d576c9c4ba" }, "downloads": -1, "filename": "pipipxx-0.0.1b0.tar.gz", "has_sig": false, "md5_digest": "b924ec9536aad515d6307bf603e9fe52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11144, "upload_time": "2019-05-11T18:48:25", "upload_time_iso_8601": "2019-05-11T18:48:25.031199Z", "url": "https://files.pythonhosted.org/packages/d0/5f/8e4cd1ea2204c49828cde06dcf553652a0481c8248ec167352f2de727603/pipipxx-0.0.1b0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.1b1": [ { "comment_text": "", "digests": { "md5": "4530441bf985514f231f57e4b9d38604", "sha256": "a65c83aec93cae292d818343e13b5eb38a042ba93559b17fa809d5bc63b43762" }, "downloads": -1, "filename": "pipipxx-0.0.1b1.tar.gz", "has_sig": false, "md5_digest": "4530441bf985514f231f57e4b9d38604", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10197, "upload_time": "2019-05-27T00:40:56", "upload_time_iso_8601": "2019-05-27T00:40:56.486846Z", "url": "https://files.pythonhosted.org/packages/e6/9a/80fcf814f27213da88608ed0fa5f47f7278996ba3005ea2dcecf85c6fdfa/pipipxx-0.0.1b1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6224745bfad3af5a1af8f1138cfe1ffd", "sha256": "b7bb5542e399c4075c498b0e79783139e1b3263394b190a42c067e9c6c0971f8" }, "downloads": -1, "filename": "pipipxx-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6224745bfad3af5a1af8f1138cfe1ffd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10365, "upload_time": "2019-05-27T01:37:17", "upload_time_iso_8601": "2019-05-27T01:37:17.184073Z", "url": "https://files.pythonhosted.org/packages/6f/a4/fd3ba03721bb01739537ae89474a733e3dddff34aeeb5c72ad081be1f039/pipipxx-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "bcdfcc1c02fc5555fa124b4eafcc4581", "sha256": "89ea70e1d80a9763ad298b4b632d5d1634ee14933b474494f4220eca46b5388c" }, "downloads": -1, "filename": "pipipxx-1.0.1.tar.gz", "has_sig": false, "md5_digest": "bcdfcc1c02fc5555fa124b4eafcc4581", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11479, "upload_time": "2019-10-27T18:46:16", "upload_time_iso_8601": "2019-10-27T18:46:16.326858Z", "url": "https://files.pythonhosted.org/packages/f9/27/2645f0f071d5a52e6ff7be5bd4b5603c153c0dcf0ff9d4f4975ed2d626ee/pipipxx-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bcdfcc1c02fc5555fa124b4eafcc4581", "sha256": "89ea70e1d80a9763ad298b4b632d5d1634ee14933b474494f4220eca46b5388c" }, "downloads": -1, "filename": "pipipxx-1.0.1.tar.gz", "has_sig": false, "md5_digest": "bcdfcc1c02fc5555fa124b4eafcc4581", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11479, "upload_time": "2019-10-27T18:46:16", "upload_time_iso_8601": "2019-10-27T18:46:16.326858Z", "url": "https://files.pythonhosted.org/packages/f9/27/2645f0f071d5a52e6ff7be5bd4b5603c153c0dcf0ff9d4f4975ed2d626ee/pipipxx-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }