托管在.OpenShift/cron/minutely目录中的OpenShift上的Python脚本不';我跑不了。什么';怎么了?

托管在.OpenShift/cron/minutely目录中的OpenShift上的Python脚本不';我跑不了。什么';怎么了?,python,cron,openshift,Python,Cron,Openshift,我编写了以下脚本,将电子邮件发送到特定的电子邮件地址,并将其保存在.openshift/cron/minutely目录中: import smtplib g = smtplib.SMTP('smtp.gmail.com:587') g.ehlo() g.starttls() g.ehlo() g.login('myusername','mypassword') g.sendmail('myemail','otheremail','message') 然后我将脚本推送到服务器上 我希望程序每分钟

我编写了以下脚本,将电子邮件发送到特定的电子邮件地址,并将其保存在.openshift/cron/minutely目录中:

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连接到服务器后,我切换到名为
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
__________________________________________________________________________

可能是服务器没有将我文件中的代码解释为python代码吗?欢迎提供任何建议。

连接到openshift控制台

rhc ssh app_name
更改为具有创建脚本权限的目录:

cd $OPENSHIFT_DATA_DIR
创建test01.py脚本

touch test01.py
为test01.py授予执行权限

chmod +x test01.py
#!/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
print("Hello")
编辑脚本

nano test01.py
添加一个简单的代码,如

print("Hello")
运行脚本:

./test01.py
错误:

./test01.py: line 1: syntax error near unexpected token `"Hello"'
./test01.py: line 1: `print("Hello")'
现在检查python路径

which python
输出

/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
现在将she-bang添加到test01.py

chmod +x test01.py
#!/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
print("Hello")
现在执行它

./test01.py
输出:

Hello
结论:
您的脚本应该知道如何运行以及python路径在哪里,因此将其添加到脚本的第一行

您的方法是错误的。尽量减少问题的再现。例如,您可以尝试从脚本在文件中写入一些内容,以缩小问题的范围。问题可能来自您的库、GMail的安全性或其他任何方面。是的,您应该尝试记录一些有助于调试的信息。谢谢你们。我试试看,然后再打给你。我改变了一些事情。你愿意看一下我对原始帖子所做的编辑吗?谢谢您的时间。我以前从未尝试过在cron文件中运行原始python代码。在文件的第一行可能需要一个指令来告诉它您正在运行python。不确定。在过去,我从cron运行python脚本,就像这样:“pythonmyscript.py”