怎么选择宜昌网站建设,如何做简易网站,网站做任务赚佣金,网站建设四不问题前面写了个博客《conda#xff1a;解决多项目开发环境配置的神器#xff01;》简单介绍了 Conda 的安装和基本命令#xff0c;在做开发时经常会使用 Conda 建立多个应用环境#xff0c;Conda 的命令虽不复杂#xff0c;但还是有时会弄混#xff0c;所以就考虑写个脚本解决多项目开发环境配置的神器》简单介绍了 Conda 的安装和基本命令在做开发时经常会使用 Conda 建立多个应用环境Conda 的命令虽不复杂但还是有时会弄混所以就考虑写个脚本一条指令创建环境。没啥难度仅仅是方便自己使用而已。该脚本是在 macOS 里写的没有在 Windows 下测试。 1 创建 Conda 应用环境的主要流程
1.1 检查系统是否安装了 Conda 这个虚拟环境工具
如果安装了则继续往下面的 1.2 走如果没安装则提醒用户先去安装具体怎么安装请参考《conda解决多项目开发环境配置的神器》
1.2 检查要建立的环境名称是否存在
如果环境存在则判断命令行参数里是否指定覆盖环境如果指定覆盖则去执行覆盖进入下面的 1.3否则就提示用户“改名或在命令行参数里设置覆盖选项override”如果环境不存在直接去创建并激活环境
1.3 以覆盖的方式安装
先检查系统现有的环境是否处于激活activate状态如果是激活状态则先取消激活deactivate再在删除该环境remove后创建 create和激活activate指定环境如果指定的环境在系统里没有处于激活状态则直接删除该环境remove后创建 create和激活activate指定环境
2 脚本包含的几个功能点函数
脚本的功能点基本都由对应的函数来实现。 注意函数的返回值可以在主函数调用此函数后用$?获得参考后面完整代码
2.1 检查是否安装了 Conda
函数名check_conda_installed返回值0表示conda已安装否则为1可以根据需要设定只要非零就可以下同
check_conda_installed(){# 尝试执行conda命令conda --version /dev/null 21
}2.2 检查环境是否存在
函数名check_env_exists返回值0 存在1 不存在
check_env_exists(){conda env list | grep -q ^$env_name\s
}2.3 当环境存在时判断 override 参数 if [ $override override ]; then # 是否覆盖override_envelseecho 环境 $env_name 已存在解决方法echo 1. 请改名后再安装echo 2. 或者使用下面的命令覆盖安装echo source installenv.sh $env_name overridefi2.4 当环境存在时检查环境是否在激活状态
函数名check_env_activated返回值0 表示激活1 表示未激活代码简要说明 $CONDA_DEFAULT_ENV 为 Conda 变量值为当前激活的环境的名称当 $CONDA_DEFAULT_ENV 和 $env_name 的值相同时表示指定的环境在激活状态。
check_env_activated(){if [[ -n $CONDA_DEFAULT_ENV ]]; thenif [[ $CONDA_DEFAULT_ENV $env_name ]]; thenreturn 0 # 环境已激活elsereturn 1 # 环境未激活fielsereturn 1 # 环境未激活fi
}2.5 此脚本用到的 Conda 命令参考
conda --version # 获取 Conda 版本可以根据此命令的返回值判断 Conda 是否安装
conda env list # 列举 Conda 安装了哪些环境
conda create -n $env_name [python$python_version] -y # 创建环境此例指定要安装python及版本可选
conda activate $env_name # 激活环境
conda deactivate # 将当前环境设置为非激活状态
conda remove --name $env_name --all -y # 删除环境3 脚本内容 此脚是为了在开发时减少配置 Conda 开发环境的时间并不是作为通用工具来开发的所以脚本并没有考虑健壮性最好只用来做测试避免造成不可预见的损失。您可以根据需要在此脚本基础上进行完善。 下面是完整代码
#!/bin/bash
# 此脚本使用 Conda 安装环境#用法
# ./installenv.sh [env_name] [override]
# 上面的两个参数
# env_name 为环境名必须要有且必须是第一个参数
# override 为是否覆盖可选默认为 no需要覆盖必须为 override字符串env_name$1 # 环境名
override$2 # 是否覆盖# 入口函数用来安装环境
main() {if [ -z $env_name ]; thenecho echo !!! 请输入变量名echo 用法: echo source installenv.sh [env_name] [override]echo # env_name 为环境名必须要有且必须是第一个参数echo # override 为是否覆盖可选默认为 \no\需要覆盖必须为 \override\字符串echo return 1fiif [ -z $override ]; thenoverridenoficheck_conda_installed # 检查 Conda 是否安装if [ $? -ne 0 ]; then # Conda 未安装echo 没有安装 Conda请安装return 1ficheck_env_exists # 检查环境是否存在if [ $? -ne 0 ]; then # 指定的环境不存在conda create -n $env_name python3.9.12 -y # 创建环境conda activate $env_name # 激活环境return 0fiif [ $override override ]; then # 是否覆盖override_envelseecho 环境 $env_name 已存在解决方法echo 1. 请改名后再安装echo 2. 或者使用下面的命令覆盖安装echo source installenv.sh $env_name overridefi
}# 检查conda是否安装
# 返回值为0表示conda已安装否则为1
check_conda_installed(){# 尝试执行conda命令conda --version /dev/null 21
}# 检查环境是否存在
# 返回值0 存在1 不存在
check_env_exists(){conda env list | grep -q ^$env_name\s
}# 覆盖环境
override_env(){check_env_activatedif [ $? -eq 0 ]; then # 环境已激活conda deactivateficonda remove --name $env_name --all -y # 删除环境conda create -n $env_name python3.9.12 -y # 创建环境conda activate $env_name # 激活环境
}# 检查环境是否激活
# 返回值为0表示激活为1表示未激活
check_env_activated(){if [[ -n $CONDA_DEFAULT_ENV ]]; thenif [[ $CONDA_DEFAULT_ENV $env_name ]]; thenreturn 0 # 环境已激活elsereturn 1 # 环境未激活fielsereturn 1 # 环境未激活fi
}# 安装指定环境
main # 安装指定环境4 使用方法
在执行此脚本时需要在Shell终端里以source或者 .的方式来运行否则会出错具体原因看下面“通义灵码”的解释 在 Shell 脚本中直接使用 conda 命令有时可能无法访问到 Conda 的环境变量和命令这是因为 Conda 通过修改shell的环境变量特别是 PATH 变量来切换不同的环境。当你在一个新的 Shell 会话中直接运行 conda 命令时如果该 Shell 会话没有经过 Conda 的初始化就可能找不到 Conda 命令。 看得有点晕吧没关系说人话当你需要在脚本中执行 conda 命令以管理环境或安装软件包时一种常见的做法是通过 source 命令在Bash中也可以写作.来执行 conda 的初始化脚本确保conda的环境变量设置正确。再直观一点只要按下面的写法执行就没问题了
source ./installenv.sh [env_name] [override]5 题外话
最近编码一直使用“通义灵码”那个代码联想功能简直就是逆天了基本上你想到的没想到的代码他都给你联想了这样写代码效率简直爆棚语法错误和 bug也非常少了。 我让她简单给我分析一下代码她说了下面的话由于太佩服了所以就作为题外话截个图分享出来 看了上面通义灵码的代码分析你能忍住不安装一个 AI编码助手 插件吗这种插件很多可以根据需要选择建议还是试试吧