蟒蛇不提取zip文件

#!/usr/bin/python 

import requests, zipfile, StringIO, sys

extractDir = "myfolder"

zip_file_url = "download url"

response = requests.get(zip_file_url)

zipDocument = zipfile.ZipFile(StringIO.StringIO(response.content))

zipinfos = zipDocument.infolist()

for zipinfo in zipinfos:

extrat = zipDocument.extract(zipinfo,path=extractDir)

系统配置蟒蛇不提取zip文件

  1. Ubuntu的OS 16.04
  2. 的Python 2.7.12

$ python extract.py 当我运行与终端代码上面的命令,它可以正常工作并创建文件夹并将文件解压缩到该文件夹​​中。

同样,当我使用sodu权限创建cron作业时,代码将执行但不会创建任何文件夹或提取文件。

crontab命令: -

40 10 * * * /usr/bin/sudo /usr/bin/python /home/ubuntu/demo/directory.py > /home/ubuntu/demo/logmyshit.log 2>&1 

也试过

40 10 * * * /usr/bin/python /home/ubuntu/demo/directory.py > /home/ubuntu/demo/logmyshit.log 2>&1 

注:

  1. 我检查系统日志,它说,cron是成功运行
  2. 上面的代码没有错误
  3. 也使python程序可执行的chmod + x filename.py

请帮我在哪里出错。

回答:

Oups里面,没有什么真的错了运行在crontab中一个Python脚本,但很多不好的事情都可能发生,因为环境是不是你来的人。

当您键入交互式shell python directory.py时,PATH和所有必需的PYTHON环境变量已被设置为登录和交互式shell初始化的一部分,当前目录默认为您的主目录或您当前所在的任何位置。

当从crontab运行相同的命令时,当前目录未指定(但可能不是您所期望的),PATH仅为/bin:/usr/bin并且未设置python环境变量。这意味着你必须调整crontab文件中的环境变量,直到你获得了正确的Python环境,并设置当前目录。

回答:

我有一个非常类似的问题,事实证明,cron不喜欢导入matplotlib,我最终不得不指定Agg后端。我想通过在每一行之后放置日志语句来看看程序在被删除之前得到了多少。当然,我的日志是空的,这让我感到震惊,因为它导致进口崩溃。

TLDR:记录每行的脚本

以上是 蟒蛇不提取zip文件 的全部内容, 来源链接: utcz.com/qa/263242.html

回到顶部