我尝试使用Python将文件复制到S3存储桶中,如下所示:
cmd = 'aws s3 %s %s' % (filename, bucketname)
os.system(cmd)
它给我一个sh: 1: aws: not found
错误。在
但是,使用s3cmd
就可以了。在
为什么s3cmd
有效,而{
另外,我做了which aws
,它返回:/home/username/anaconda/bin/aws
。在
which s3cmd
返回:/home/username/anaconda/bin/s3cmd
。在
为什么一个有效,另一个却不能,尽管有相同的根?在
解决此问题的一种快速方法是尝试操作系统调用的完整路径,以查看是否存在路径问题:
这是一个问题,可能有几个原因,很可能与路径变量有关(一开始猜测)。不过,最好还是避开操作系统如文档(https://docs.python.org/2/library/os.html#os.system)中所述,并使用一些替代方法。在
使用子流程:
^{pr2}$或者只使用pythonaws客户机boto3包。有很多方法,但是这个SO问题(How to save S3 object to a file using boto3)中有一个简单的例子:
这是不可测试的moto,这可能是恼人的。相反,如果你想测试,你可以这样做:
相关问题 更多 >
编程相关推荐