赞
踩
码字不易,转载请注明出处和作者,谢谢。
在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,找不到再进入系统默认路径中寻找。
问题解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。