通过source执行.sh脚本激活conda环境运行Python脚本失败如何解决
问题原因
- 最核心的问题是
runscripts.sh的换行符格式不匹配:该脚本大概率是在Windows环境下编辑/传输,使用了Windows专属的CRLF(\r\n)换行符,而当前Linux系统默认识别LF(\n)换行符,每一行末尾多余的\r字符会被识别为命令/参数的一部分,从而触发各类路径、环境识别错误。
你看到的Python报错信息格式异常,就是\r会把终端光标移到行首导致前面的路径内容被覆盖,实际系统读取的Python脚本路径末尾多了不可见的\r字符,才会提示文件不存在。 - 次要可优化点:脚本写法可以简化,避免全路径激活环境可能带来的识别问题。
解决步骤
- 转换脚本换行符格式
- 先安装格式转换工具:
Debian/Ubuntu系系统执行:sudo apt install dos2unix
CentOS/RHEL系系统执行:sudo yum install dos2unix - 执行格式转换:
dos2unix runscripts.sh
- 先安装格式转换工具:
- (可选)优化脚本内容,修改
runscripts.sh为以下内容:
#!/bin/bash export PATH="/home/ludo915/anaconda3/bin/:$PATH" eval "$(conda shell.bash hook)" # 直接用环境名激活,无需写全路径 conda activate automate_PDP_IMAP python /home/ludo915/automate_PDP_IMAP/runscripts_IMAP.py
- 重新执行脚本:
source runscripts.sh即可正常运行。
内容的提问来源于stack exchange,提问作者Ludogiraud
相关产品推荐
相关产品推荐

