阅读 341

pipx:一款很特别的类 pip 工具

前几天分享 Python 核心开发者 Brett Cannon 的文章建议时,里面有提到一个叫 pipx 的工具。之前了解不多,但是看完文档之后,发现它特别有意思,因此专门用一篇文章向大家推荐一下。

相关文章:原来我一直安装 Python 库的姿势都不对呀!

pipx 是什么?

据官网介绍,pipx 是安装并运行 Python 终端用户应用(end-user applications)的工具。终端用户应用,其实可以理解为用 Python 编写的命令行工具,可以直接从命令行调用的那种。

有点类似 Mac 下的 brew,类似 JavaScript 的 npx,和 pip 也很像,只是专门用来安装命令行工具库。

pipx 之所以存在,是因为 Python 和 PyPI 支持开发者发布带有”终端脚本入口“的代码,用户可以在命令行调用 Python 代码,使得这个 Python 包类似于一个独立的应用。


官网:https://pipxproject.github.io/pipx/


pipx 的主要功能

pipx 支持如下功能:

  • 将 Python 包安全地安装在隔离环境中,同时又可以全局暴露出命令行的调用入口。这样可以避免依赖之间的冲突。

  • 列举、更新和删除使用 pipx 安装的包

  • 在临时环境中运行某个 Python 应用的最新版

pipx 需要 Python 3.6 及以上版本,同时必须已经安装好了 pip。

工具原理

如果想知道 pipx 命令背后都是怎么执行的,那么可以在传入 --verbose 参数查看。我们具体说明运行二进制文件时,是什么样的操作流程:

  1. 创建或重复使用一个共享的虚拟环境,虚拟环境中有 Python 包管理所需的库,默认路径是 ~/.local/pipx/shared/

  2. 确保所有包管理相关的库,都更新到最新版

  3. 根据包名称、python 版本、pip 参数等属性,创建一个临时目录(或使用已缓存的目录)

  4. 在目录中通过 python-m venv 创建虚拟环境

  5. 在新建的虚拟环境中安装指定的包

  6. 调用对应的二进制文件

上面这些步骤,我们手动也可以完成。pipx 所做的,则是将整个流程自动化了!

可以使用的 Python 应用

有一些常用的 Python 工具,推荐大家尝试通过 pix 安装:

pipx install ansible  # IT automationpipx run asciinema  # Record and share your terminal sessions, the right way.pipx run black  # uncompromising Python code formatterpipx run --spec=babel pybabel --help  # internationalizing and localizing Python applicationspipx run --spec=chardet chardetect --help  # detect file encodingpipx run cookiecutter  # creates projects from project templatespipx run create-python-package  # easily create and publish new Python packagespipx run flake8  # tool for style guide enforcementpipx run gdbgui  # browser-based gdb debuggerpipx run hexsticker  # create hexagon stickers automaticallypipx run ipython  # powerful interactive Python shellpipx run jupyter  # web-based notebook environment for interactive computingpipx run pipenv  # python dependency/environment managementpipx run poetry  # python dependency/environment/packaging managementpipx run pylint  # source code analyzerpipx run pyinstaller  # bundles a Python application and all its dependencies into a single packagepipx run pyxtermjs  # fully functional terminal in the browserpipx install shell-functools  # Functional programming tools for the shell



文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐