Lo que sigue es una solución que no necesita cambiar la política de seguridad.
Ignoraré la parte su
, ya que podemos usar la opción --user
de sudo
.
Queremos pasar variables de entorno a un command
ejecutado a través de sudo
. Sin embargo, sudo
no permitirá que las variables de entorno se pasen a un comando (. Hay una razón de seguridad válida para esto, algunas variables pueden ser peligrosas ). Se puede usar un shell para establecer variables de entorno, y sudo
puede ejecutar un shell con un script que se le pasa. Por lo tanto, dígale a sudo
que ejecute un script que establezca las variables de entorno.
var_a=someThing
var_b=someOtherThing
sudo bash -c "
export var_a=\"${var_a}\"
export var_b=\"${var_b}\"
the_command some_args
"
В Debianpip3
по умолчанию используется пользовательская схема при запуске вне виртуальных окружений, а файлы устанавливаются в ~/.local
.
Если вы хотите установить систему инструментов -с широким использованием pip3
в Debian и производных версиях, вы все равно можете использовать
pip3 install --system...
для использования схемы системы.
(Стоит проверить, доступен ли рассматриваемый инструмент в виде пакета Debian; В Debian 10 добавлено много пакетов...)
Как указывает муру , виртуальные оболочки во многих случаях являются лучшим подходом. Вся тема установки инструментов Python вызывает множество дискуссий, даже среди основных разработчиков Python !