gpt4 book ai didi

python - 我在 .openshift/cron/minutely 目录中托管在 OpenShift 上的 Python 脚本无法运行。怎么了?

转载 作者:行者123 更新时间:2023-11-28 16:35:34 25 4
gpt4 key购买 nike

我编写了以下脚本,它向特定的电子邮件地址发送电子邮件,并将其保存在 .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

编辑脚本

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

现在在 test01.py 中添加一个 she bang

#!/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python
print("Hello")

现在执行它

./test01.py

输出:

Hello

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

关于python - 我在 .openshift/cron/minutely 目录中托管在 OpenShift 上的 Python 脚本无法运行。怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26818574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com