Pip требует root разрешений, поэтому обязательно запустите ваш бинарный файл с достаточными привилегиями.
Для меня сработало следующее:
use std::process::Command;
Command::new("pip")
.args(&["install", "bs4"])
.spawn()
.expect("failed to execute process");
Используйте это для анализа ошибки:
use std::process::Command;
let output = Command::new("pip")
.args(&["install", "bs4"])
.output()
.expect("failed to execute process");
println!("status: {}", output.status);
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
Пример был получен отсюда:
Как мне вызвать системную команду в Rust и записать ее вывод?