阻止软件包安装到 conda 基础环境
Block package installations to conda base environment
我目前正在使用 miniconda,我想防止我自己和我机器的其他用户在 base
环境中安装任何东西。这是因为我希望用户创建虚拟环境并在那里安装东西。我也不希望我的基础环境变得臃肿。
有办法吗?我同时使用 conda 和 pip,所以我想我需要以某种方式阻止它们。
一个选项是将目录 pip 和 conda 安装包的写入权限更改为用于基本环境。这些位置因您的分布而异,但您可以使用 python -c "import setuptools; print(setuptools.__file__)"
之类的内容进行检查。 setuputils
的父目录将是默认安装包的位置。 运行 chmod -w <packages dir>
删除写权限。您以后可以随时使用 chmod +w <packages dir>
将它们添加回来,但是当它们被禁用时,这应该可以防止您意外地在那里安装软件包。除非你随意安装带有 sudo
的软件包,即...
您可以将此添加到您的 .bashrc
或 .zshrc
function pip(){
if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "" = "install" ]; then
echo "Not allowed in base"
else
command pip "$@"
fi
}
function extended_conda(){
if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "" = "install" ]; then
echo "Not allowed in base"
else
conda "$@"
fi
}
alias conda=extended_conda
如果你在基础环境中,它会拒绝安装命令。
我目前正在使用 miniconda,我想防止我自己和我机器的其他用户在 base
环境中安装任何东西。这是因为我希望用户创建虚拟环境并在那里安装东西。我也不希望我的基础环境变得臃肿。
有办法吗?我同时使用 conda 和 pip,所以我想我需要以某种方式阻止它们。
一个选项是将目录 pip 和 conda 安装包的写入权限更改为用于基本环境。这些位置因您的分布而异,但您可以使用 python -c "import setuptools; print(setuptools.__file__)"
之类的内容进行检查。 setuputils
的父目录将是默认安装包的位置。 运行 chmod -w <packages dir>
删除写权限。您以后可以随时使用 chmod +w <packages dir>
将它们添加回来,但是当它们被禁用时,这应该可以防止您意外地在那里安装软件包。除非你随意安装带有 sudo
的软件包,即...
您可以将此添加到您的 .bashrc
或 .zshrc
function pip(){
if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "" = "install" ]; then
echo "Not allowed in base"
else
command pip "$@"
fi
}
function extended_conda(){
if [ "${CONDA_PROMPT_MODIFIER-}" = "(base) " ] && [ "" = "install" ]; then
echo "Not allowed in base"
else
conda "$@"
fi
}
alias conda=extended_conda
如果你在基础环境中,它会拒绝安装命令。