簡體   English   中英

PythonAnywhere 計划任務導入錯誤

[英]PythonAnywhere Scheduled Tasks import error

我想每小時向我的用戶發送推送通知。

from push_notifications.models import APNSDevice
print('test schedule task')
device = APNSDevice.objects.all()
if device is None:
    print('None Device')
print('number of models is '+str(len(device)))
device.send_message('test')

以上是我嘗試每小時執行的操作。

但是當執行該腳本時,我得到的是一條錯誤消息:

“回溯(最近一次通話):文件“/home/User/Folder/Project/App/schedule.py”,第 1 行,來自 push_notifications.models 導入 APNSDevice 導入錯誤:沒有名為 push_notifications.models 的模塊

2016-03-19 05:49:05 -- 完成任務,耗時 0.00 秒,返回碼為 1。”

我該怎么做才能解決這個問題?

打印(sys.path))如下:

['/home/User/Folder/Project/App', '/usr/local/lib/python2.7/dist-packages/snappy-2.3.2-py2.7-linux-x86_64.egg', '/usr /local/lib/python2.7/dist-packages/cypari-1.2.2-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/pypng-0.0. 18-py2.7.egg'、'/usr/local/lib/python2.7/dist-packages/FXrays-1.3.1-py2.7-linux-x86_64.egg'、'/usr/local/lib/ python2.7/dist-packages/spherogram-1.4.1-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/plink-1.8-py2.7.egg ', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr /lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/local/ lib/python2.7/dist-packages/Orange/orng', '/usr/local/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages', ' /usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

您需要在代碼的開頭導入模塊,以便程序調用它。

節目有點晚了,如果您在 pythonanywhere 上每小時執行此腳本,則您沒有與通過 manage.py shell 執行類似內容時所擁有的上下文相同的上下文。 我認為您應該將這段代碼變成自定義管理命令。 https://docs.djangoproject.com/en/3.0/howto/custom-management-commands/

看看你的 wsgi.py 文件,看看你如何在那里定義環境變量。 您可能必須在計划任務中執行相同操作才能將其作為腳本運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM