阻止包安装到 conda 基础环境

Joh*_*etz 6 python pip conda

我目前正在使用 miniconda,我想防止我自己和我机器的其他用户在base环境中安装任何东西。这是因为我希望用户创建虚拟环境并在那里安装东西。我也不希望我的基础环境变得臃肿。

有没有办法做到这一点?我同时使用 conda 和 pip,所以我想我需要以某种方式阻止这两者。

Gav*_*kaa 12

您可以将其添加到您的.bashrc.zshrc

function pip(){
  if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "$1" = "install" ]; then
    echo "Not allowed in base"
  else
    command pip "$@"
  fi
}

function extended_conda(){
  if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "$1" = "install" ]; then
    echo "Not allowed in base"
  else
    conda "$@"
  fi
}
alias conda=extended_conda
Run Code Online (Sandbox Code Playgroud)

如果您处于基本环境中,它将拒绝安装命令。


aug*_*ray 7

一种选择是将目录 pip 和 conda 安装包的写入权限更改为基本环境。这些位置根据您的发行版而有所不同,但您可以使用类似的内容进行检查python -c "import setuptools; print(setuptools.__file__)"。默认情况下,父目录setuputils将是软件包的安装位置。运行chmod -w <packages dir>以删除写入权限。您可以随时将它们添加回来chmod +w <packages dir>,但是当它们被禁用时,这应该可以防止您意外地在那里安装软件包。除非你随意安装软件包sudo,否则......