pipx inject
pipx inject 命令用会往存在的虚拟环境中安装指定的包。语法是 pipx inject abc --dependencies depA depB。这个命令会把 depA 和 depB 安装到已经存在的 abc 虚拟环境中。
inject.py
和之前的命令一样,inject 会调用 command/inject.py 模块。最终调用的是 inject_dep 方法:
1 | all_success = True |
inject_dep 做了如下几步:
- 判断
inject的目标虚拟环境是否存在。 - 运行
venv.install_package安装 app - 如果上面都没有出错,则执行
run_post_install_actions方法处理安装后的收尾工作,如果有一步报错,则执行venv.remove_venv删除虚拟目录。
这里的 2,3 两步在上一篇的 pipx install 命令已经学习过了,所以从这个层面看,inject 和 install 的差别只是 inject 会指定一个存在的虚拟目录,而 install 是创建一个新的 venv
inject 命令不复杂,所涉及的知识点也基本上在之前 install 和 run 两个命令中提到过了。
