Python 2.7 如何使用带有代理的crontab运行python脚本
我正在尝试从bash脚本运行python脚本,以便使用crontab将文件上载到网站。脚本从终端运行,但从crontab不起作用,错误为Python 2.7 如何使用带有代理的crontab运行python脚本,python-2.7,Python 2.7,我正在尝试从bash脚本运行python脚本,以便使用crontab将文件上载到网站。脚本从终端运行,但从crontab不起作用,错误为 "Error: <urlopen error [Errno -2] Name or service not known>" 在手动运行和使用crontab的情况下,当我尝试用python脚本“打印(os.environ)”时: 使用crontab: "{'MAILTO': '/var/mail/envclim', 'LANG': 'en_US.U
"Error: <urlopen error [Errno -2] Name or service not known>"
在手动运行和使用crontab的情况下,当我尝试用python脚本“打印(os.environ)”时:
使用crontab:
"{'MAILTO': '/var/mail/envclim', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/sh', 'XDG_RUNTIME_DIR': '/run/user/1000', 'SHLVL': '2', 'PYTHONPATH': '/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/', 'OLDPWD': '/home/envclim/upload_sdswas', 'PWD': '/home/envclim/upload_sdswas/upload_scripts', 'LOGNAME': 'envclim', 'USER': 'envclim', 'HOME': '/home/envclim', 'PATH': '/bin:/usr/bin:/usr/local/bin:/usr/local/CDO/bin', 'XDG_SESSION_ID': '6', '_': '/usr/bin/python'}"
但在手动情况下,存在代理,如下所示:
{'HTTP_PROXY': 'http://10.51.51.51:80/', 'KDE_IS_PRELINKED': '1', 'ALL_PROXY': 'socks://10.51.51.51:80/', 'NO_PROXY': 'localhost,127.0.0.0/8,::1', 'GJS_DEBUG_OUTPUT': 'stderr', 'http_proxy': 'http://10.51.51.51:80/', 'FTP_PROXY': 'http://10.51.51.51:80/',----------}
在crontab中,我添加了:
SHELL=/bin/sh
PATH=/bin:/usr/bin
PYTHONPATH=/usr/lib/python2.7/site-packages
MAILTO=/var/mail/envclim
我用的是软呢帽19。我试图禁用代理,但脚本根本不起作用
请问,谁能解决这个问题
提前谢谢
Zeinab非常感谢您的评论,我通过添加以下行解决了此问题:
in crontab:
PYTHONPATH=/usr/lib/python2.7/site-packages
HTTP_PROXY=http://10.51.51.51:80/
and in bash file that used to run python script:
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/site-packages/
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/local/usr/lib
I hope that be useful for someone
my best wishes
Zeinab
给我们看剧本。至少是尝试使用url.br.open(url)br.select_form(nr=1)br.form.add_file(open(filename,'rb'),'text/plain',basename(filename))执行操作的部分br.submit()您应该将该信息添加到问题的文本中,它就属于那里(因为这会让任何人都更容易找到它,试图回答你的问题)。无论如何,我不知道你的代码中的
br
是什么。它来自哪里?试试:br=Browser(factory=RobustFactory())br.addheaders.append('Authorization','Basic%s'%base64.encodestring('%s:%s'(usr,pwd)))br.open(url)br.select_form(nr=1)br.form.add_file(open(filename,'rb'),'text/plain',basename(filename))br.submit()print“文件'%s'已成功上载”%filename sys.exit(0),异常除外,e:print“错误:”,e sys.exit(1)将它添加到问题的文本中,而不是添加到注释中。它很难阅读。包括所有必需的导入也很方便,我不知道浏览器
来自何处。
in crontab:
PYTHONPATH=/usr/lib/python2.7/site-packages
HTTP_PROXY=http://10.51.51.51:80/
and in bash file that used to run python script:
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/site-packages/
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/local/usr/lib
I hope that be useful for someone
my best wishes
Zeinab