参照openvino安装前置项脚本学习shell

0. 前言

  • 因为这个脚本在安装python相关的东西十总出问题,所以我要搞清楚它做了什么,自己执行需要的命令,方便解决遇到的问题。

1.脚本注释

# 错误输出
error() {
    local code="${3:-1}"
    if [[ -n "$2" ]];then
        echo "Error on or near line $1: $2; exiting with status ${code}"
    else
        echo "Error on or near line $1; exiting with status ${code}"
    fi
    exit "${code}"
}
trap 'error ${LINENO}' ERR


V_ENV=0
# 判断参数是否有效
for ((i=1;i <= $#;i++)) {
    case "${!i}" in
        caffe|tf|tf2|mxnet|kaldi|onnx)
            postfix="_$1"
            ;;
        "venv")
            V_ENV=1
            ;;
        *)
            if [[ "$1" != "" ]]; then
                echo "\"${!i}\" is unsupported parameter"
                echo $"Usage: $0 {caffe|tf|tf2|mxnet|kaldi|onnx} {venv}"
                exit 1
            fi
            ;;
        esac
}
# 脚本绝对路径
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]-$0}" )" && pwd )"
# 判断Linux系统版本
if [[ -f /etc/centos-release ]]; then
    DISTRO="centos"
elif [[ -f /etc/lsb-release ]]; then
    DISTRO="ubuntu"
fi

if [[ $DISTRO == "centos" ]]; then
    #判断python版本
    if command -v python3.8 >/dev/null 2>&1; then
        python_binary=python3.8
    elif command -v python3.7 >/dev/null 2>&1; then
        python_binary=python3.7
    elif command -v python3.6 >/dev/null 2>&1; then
        python_binary=python3.6
    elif command -v python3.5 >/dev/null 2>&1; then
        python_binary=python3.5
    fi
    # 没有python则安装python3.6
    if [ -z "$python_binary" ]; then
        sudo -E yum install -y https://centos7.iuscommunity.org/ius-release.rpm
        sudo -E yum install -y python36u python36u-pip
        sudo -E pip3.6 install virtualenv
        python_binary=python3.6
    fi
    # latest pip is needed to install tensorflow
    sudo -E "$python_binary" -m pip install --upgrade pip
elif [[ $DISTRO == "ubuntu" ]]; then
    sudo -E apt update
    sudo -E apt -y --no-install-recommends install python3-pip python3-venv
    python_binary=python3
    sudo -E "$python_binary" -m pip install --upgrade pip
elif [[ "$OSTYPE" == "darwin"* ]]; then
    python_binary=python3
    python3 -m pip install --upgrade pip
fi

if [[ $V_ENV -eq 1 ]]; then
    # 装虚拟环境
    $python_binary -m venv $SCRIPTDIR/../venv
    source $SCRIPTDIR/../venv/bin/activate
    $SCRIPTDIR/../venv/bin/$python_binary -m pip install -r $SCRIPTDIR/../requirements${postfix}.txt
    echo
    echo "Before running the Model Optimizer, please activate virtualenv environment by running \"source ${SCRIPTDIR}/../venv/bin/activate\""
else
    if [[ "$OSTYPE" == "darwin"* ]]; then
        python3 -m pip install -r $SCRIPTDIR/../requirements${postfix}.txt
    else
        # 这里我已经改了
        pip install -r $SCRIPTDIR/../requirements${postfix}.txt
    fi
    echo [WARNING] All Model Optimizer dependencies are installed globally.
    echo [WARNING] If you want to keep Model Optimizer in separate sandbox
    echo [WARNING] run install_prerequisites.sh venv "{caffe|tf|mxnet|kaldi|onnx}"
fi

3.提取命令

  • if [[ -n "$2" ]]的意思是如果第二个参数不为空,[]可用于比较,在比较字符串时使用两重括号,防止某些情况下出错
  • $#表示参数的个数
  • command无视shell脚本中的“同名”函数,执行特定的命令,参数-v表示输出执行程序的绝对路径

4.ubuntu实际执行

sudo -E apt update
sudo -E apt -y --no-install-recommends install python3-pip python3-venv
sudo -E python3-m pip install --upgrade pip
pip install -r requirements_caffe.txt  #这里根据需要安装对应python库,以caffe为例
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值