Ubuntu系统shell脚本执行python时提示 ImportError: No module named xxx

Ubuntu系统shell脚本执行python时提示 ImportError: No module named xxx

码字不易,转载请注明出处和作者,谢谢。

 

在Ubuntu16.04系统上已经成功安装了Anaconda并配置好相应的库后,在shell中输入 python xx.py 可以成功执行

 

但是在shell脚本中,输入完全相同的命令 python xx.py 却会报错。

ImportError: No module named xxx

 

$ vi zhilian_connect_hdfs.sh

export $PATH:PATH=/root/anaconda2/bin   # 导入 anaconda2 的 python 内核

cd /root/zhilian_Spider/    # 进入zhilian_Spider路径

nohup python connect_hdfs.py >> connect_hdfs.log 2>&1 &
 

根据在网上查询的错误原因,以及老师的指点,发现第一行的导入路径写法 export $PATH:PATH=/root/anaconda2/bin  指的是先在$PATH中寻找python的内核及库,如果找不到相应的库再进入PATH=/root/anaconda2/bin引入相关的python内核及库。我使用的是Anconda2而且类库全部装在在了anaconda的相关文件夹中,而shell脚本会先去$PATH中寻找python的内核,即系统自带的python27,因此搜索不到我安装的库。

 

明白了这一点后,将shell脚本改为如下,问题即可解决

$ vi zhilian_connect_hdfs.sh

export PATH=/root/anaconda2/bin:$PATH   # 更改export导入位置的顺序

cd /root/zhilian_Spider/    # 进入zhilian_Spider路径

nohup python connect_hdfs.py >> connect_hdfs.log 2>&1 &

 

这种写法,及先使用给定的PATH=/root/anaconda2/bin,找不到再进入系统默认路径中寻找。

问题解决。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值