Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Post History

80%
+6 −0
Q&A What is the point of pipx?

They are tools for different audiences. pipx does not replace pip. In some more detail, pip answers the question "As a Python developer, how can I install Python packages and their dependencies" w...

posted 1y ago by tripleee‭  ·  edited 1y ago by tripleee‭

Answer
#7: Post edited by user avatar tripleee‭ · 2023-09-17T08:07:34Z (about 1 year ago)
Wording tweak
  • They are tools for different audiences. `pipx` does not replace `pip`.
  • In some more detail, `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Also, on shared servers, I can install tools like `ruff` without messing with the system or breaking anything for other users.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • Obviously, `pipx` only makes sense for packages which make sense as a standalone CLI utility. For your Python development needs, `pip` remains the recommended installation tool, and the only one which makes sense for a library you want to use from your own Python code, directly or indirectly.
  • They are tools for different audiences. `pipx` does not replace `pip`.
  • In some more detail, `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Also, on shared servers, I can install tools like `ruff` without messing with the system or breaking anything for other users.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • Obviously, `pipx` only makes sense for packages which are useful as a standalone CLI utility. For your Python development needs, `pip` remains the recommended installation tool, and the only one which makes sense for a library you want to use from your own Python code, directly or indirectly.
#6: Post edited by user avatar tripleee‭ · 2023-09-03T10:24:32Z (about 1 year ago)
Shared servers scenario
  • They are tools for different audiences. `pipx` does not replace `pip`.
  • In some more detail, `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • Obviously, `pipx` only makes sense for packages which make sense as a standalone CLI utility. For your Python development needs, `pip` remains the recommended installation tool, and the only one which makes sense for a library you want to use from your own Python code, directly or indirectly.
  • They are tools for different audiences. `pipx` does not replace `pip`.
  • In some more detail, `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Also, on shared servers, I can install tools like `ruff` without messing with the system or breaking anything for other users.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • Obviously, `pipx` only makes sense for packages which make sense as a standalone CLI utility. For your Python development needs, `pip` remains the recommended installation tool, and the only one which makes sense for a library you want to use from your own Python code, directly or indirectly.
#5: Post edited by user avatar tripleee‭ · 2023-09-03T10:15:41Z (about 1 year ago)
More directly address the question whether pipx could replace pip
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • They are tools for different audiences. `pipx` does not replace `pip`.
  • In some more detail, `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
  • Obviously, `pipx` only makes sense for packages which make sense as a standalone CLI utility. For your Python development needs, `pip` remains the recommended installation tool, and the only one which makes sense for a library you want to use from your own Python code, directly or indirectly.
#4: Post edited by user avatar tripleee‭ · 2023-09-03T10:08:00Z (about 1 year ago)
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for some reason, by all means do that instead."
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for your use case (for example, to install this package as a dependency for a Python project of your own), **by all means use `pip` instead if you like."**
#3: Post edited by user avatar tripleee‭ · 2023-09-03T10:05:26Z (about 1 year ago)
Final corollary
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • Any instructions which recommend installation with `pipx`, then, are meant for consumers of the utility package. The instructions basically imply, "if you know how to use `pip`, and prefer to use that for some reason, by all means do that instead."
#2: Post edited by user avatar tripleee‭ · 2023-09-03T09:56:11Z (about 1 year ago)
Updated based on comments
  • I would say `pip` answers the question **"As a Python developer, how can I install dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi"** (without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies)?
  • Seen from this angle, it's pretty clear that the use cases are different.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
  • I would say `pip` answers the question **"As a Python developer, how can I install Python packages and their dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi,** without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies?"
  • Seen from this angle, it's pretty clear that the use cases are different.
  • `pipx` takes care to encapsulate each installation so that, behind the scenes, the installation effectively has its own virtual environment which gets activated when you run a `pipx`-installed command. Thus, any dependencies `pipx` installs are specific to, and separated from, any other Python packages installed elsewhere on your system somehow.
  • Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.
#1: Initial revision by user avatar tripleee‭ · 2023-09-02T16:35:23Z (about 1 year ago)
I would say `pip` answers the question **"As a Python developer, how can I install dependencies"** whereas `pipx` answers the question **"As a user, how can I conveniently install a tool which is available via PyPi"** (without learning anything about Python, and without ending up in a situation where two packages I installed have trouble coexisting because they have conflicting or otherwise incompatible dependencies)?

Seen from this angle, it's pretty clear that the use cases are different.

Even as a Python developer, I have some tools that I install because they are convenient to have available on my system, not particularly because they help me with Python or as a developer. The CLI for Amazon AWS is a good example.