如何使用pipx实现类似pip install -r requirements.txt的功能?
看你刚才尝试pipx install -r requirements.txt时遇到了这个错误:
[xyro@arch terra]$ pipx install -r requirements.txt
usage: pipx [-h] [--version]
{install,uninject,inject,upgrade,upgrade-all,uninstall,uninstall-all,reinstall,reinstall-all,list,run,runpip,ensurepath,environment,completions}
...
pipx: error: unrecognized arguments: -r
确实,pipx本身没有直接对应pip install -r的参数,毕竟它的核心是创建隔离的Python应用环境,和pip的使用逻辑不太一样。不过别慌,有两种实用的方法能帮你实现批量安装requirements包到隔离环境的需求:
情况1:给已有的pipx应用环境添加依赖
如果你已经用pipx安装了某个应用(比如pipx install poetry),现在想把requirements.txt里的包都装到这个应用的隔离环境里,用inject命令就行:
pipx inject <你的应用名> -r requirements.txt
举个例子,要是你的应用名叫myapp,那就跑:
pipx inject myapp -r requirements.txt
情况2:创建全新的隔离环境批量安装requirements里的包
如果是想从零开始建一个隔离环境来装requirements里的所有包,pipx没有直接的命令,但可以曲线完成:
- 先安装一个“占位”的包来创建隔离环境,最简单的就是把Python本身作为占位应用:
pipx install python
- 然后用
runpip命令给这个环境安装requirements里的包:
pipx runpip python install -r requirements.txt
之后你想在这个环境里运行脚本,直接用pipx run python your_script.py就行。
另外,如果你只是想临时运行某个依赖这些包的脚本,不用永久安装的话,还可以用这个命令一步到位:
pipx run --requirements requirements.txt your_script.py
它会临时创建一个隔离环境,装完依赖就运行脚本,用完也不会残留多余环境,很适合一次性任务。
备注:内容来源于stack exchange,提问作者xyro




