我在.openshift/cron/minutely目录下的OpenShift上托管的Python脚本不运行。怎么了?
问题描述:
我写了下面的脚本,这将电子邮件发送到特定的电子邮件地址,并将其保存在.openshift/cron的/每分钟目录内:我在.openshift/cron/minutely目录下的OpenShift上托管的Python脚本不运行。怎么了?
import smtplib
g = smtplib.SMTP('smtp.gmail.com:587')
g.ehlo()
g.starttls()
g.ehlo()
g.login('myusername','mypassword')
g.sendmail('myemail','otheremail','message')
我然后推脚本到服务器。
我预计该程序每分钟运行一次,并每分钟收到一封电子邮件。但是,没有证据表明我的代码正在运行。任何想法可能导致这个问题?我在设置应用程序时忘记了一个步骤吗?
注意:我检查过我提供的电子邮件地址和密码是否正确,并且安装了cron。
编辑:看来这个问题是从服务器发起: 我删除了文件的原始内容,创建“TESTFILE.TXT”,并写了这个代码,而不是:等待后
a = open('testfile.txt','r+')
if not a.read():
a.write('Test writing')
a.close()
代码运行和ssh-ING到服务器,我改叫app-root/logs
目录并显示cron.log
的内容,这看起来是这样的:
Sat Nov 8 11:01:11 EST 2014: START minutely cron run
__________________________________________________________________________
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py:
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py: line 1: syntax error near unexpected token `('
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py: line 1: `a = open('testfile.txt','r+')'
__________________________________________________________________________
Sat Nov 8 11:01:11 EST 2014: END minutely cron run - status=0
__________________________________________________________________________
难道是服务器为n不把我的文件中的代码解释为python代码?欢迎任何建议。
答
连接到控制台openshift
rhc ssh app_name
更改到目录权限创建脚本:
cd $OPENSHIFT_DATA_DIR
创建test01.py脚本
touch test01.py
给执行权限TEST01 .py
chmod +x test01.py
编辑脚本
nano test01.py
添加一个简单的代码一样
print("Hello")
运行脚本:
./test01.py
错误:
./test01.py: line 1: syntax error near unexpected token `"Hello"'
./test01.py: line 1: `print("Hello")'
现在检查蟒蛇路径
which python
输出
/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
现在添加一个她砰到TEST01。PY
#!/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
print("Hello")
现在执行它
./test01.py
输出:
Hello
结论: 您的脚本应该知道如何运行,哪里是蟒蛇的路径,所以在添加它脚本的第一行
您的方法错误。尝试对问题进行最小程度的重现。例如,您可以尝试从脚本中的文件中写入某些内容以缩小问题范围。问题可能来自您的图书馆,GMail的一些安全性或任何其他问题。 – AsTeR 2014-11-08 15:18:48
是的,你应该尝试记录一些可以帮助你调试的信息。 – 2014-11-08 15:27:15
谢谢你们两位。我会尽力回复你 – loic17 2014-11-08 15:44:25