我有一个使用inotify-tools
监视目录的脚本。当新文件被添加到目录时,脚本调用一个python程序并将路径和填充名称作为参数传递。从bash脚本执行Python程序时出现ModuleNotFoundError
这一切工作正常,除了我得到一个ModuleNotFoundError
...有问题的模块是boto3(对于AWS S3)。
python脚本在Pycharms中正常工作,所以我真的不知道是什么导致了错误。
监控脚本:
source=$1
pythonscriptlocation=$2
inotifywait -m $source -e create -e moved_to |
while read path action file; do
python $pythonscriptlocation $path $file
done
的Python脚本示例:
import argparse
import boto3
parser = argparse.ArgumentParser();
parser.add_argument("source_path");
parser.add_argument("filename");
args = parser.parse_args();
print(args.source_path);
print(args.filename);
更新 - 解决方案
原来ANACONDA
又增加了一个环境变量来我.bashrc
底部文件...因此,它搞砸了我的PATH
。删除该行,然后再出现1个问题:在监视器脚本中,我打电话给python
,但应该叫python3
。
@Inian如你所愿。完成;) – pookie
只是想看看''bash'脚本方面的东西看起来不错,你是否尝试打印值以查看它们是否正常,还要双引号“python”$ pythonscriptlocation“”$ path“ “$ file”' – Inian
@Inian谢谢,但我已经设法弄清楚问题是什么...... – pookie