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 参数查看。我们具体说明运行二进制文件时,是什么样的操作流程:
创建或重复使用一个共享的虚拟环境,虚拟环境中有 Python 包管理所需的库,默认路径是 ~/.local/pipx/shared/ 确保所有包管理相关的库,都更新到最新版 根据包名称、python 版本、pip 参数等属性,创建一个临时目录(或使用已缓存的目录) 在目录中通过 python-m venv 创建虚拟环境 在新建的虚拟环境中安装指定的包 调用对应的二进制文件 上面这些步骤,我们手动也可以完成。pipx 所做的,则是将整个流程自动化了!
可以使用的 Python 应用
有一些常用的 Python 工具,推荐大家尝试通过 pix 安装:
pipx install ansible # IT automation
pipx run asciinema # Record and share your terminal sessions, the rightway.
pipx run black # uncompromising Python code formatter
pipx run --spec=babel pybabel --help # internationalizing and localizing Python applications
pipx run --spec=chardet chardetect --help # detect file encoding
pipx run cookiecutter # creates projects from project templates
pipx run create-python-
package # easily create and publish new Python packages
pipx run flake8 # tool for style guide enforcement
pipx run gdbgui # browser-based gdb debugger
pipx run hexsticker # create hexagon stickers automatically
pipx run ipython # powerful interactive Python shell
pipx run jupyter # web-based notebook environment for interactive computing
pipx run pipenv # python dependency/environment management
pipx run poetry # python dependency/environment/packaging management
pipx run pylint # source code analyzer
pipx run pyinstaller # bundles a Python application and all its dependencies into a single package
pipx run pyxtermjs # fully functional terminal in the browser
pipx install shell-functools # Functional programming tools for the shell
回复下方「关键词」,获取优质资源
回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版 回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版 回复关键词「m」,立即获取Python精选优质文章合集 回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~
推荐阅读
2019年,大家都是怎么用 Pandas 的? 一篇文章读懂 Python 多线程 效率翻倍!再也不用手动改测试接口的参数了 一行代码弄懂数据,pandas最佳搭档就是ta了 让你赚钱更省力的 10 个开源项目!
题图:pexels,CC0 授权。