Flask apscheduler的SyntaxError

时间:2018-07-26 14:28:11

标签: python flask amazon-ec2 apscheduler

我正在尝试在AWS EC2上启动Flask应用程序,并且正在尝试使用flask-apscheduler来启用后台线程。但是,导入库时,我的代码坏了。

  

/ etc / httpd / logs / error_log:

 mod_wsgi (pid=29266): Target WSGI script '/var/www/html/flaskapp/flaskapp.wsgi' cannot be loaded as Python module., referer: http:/$
 mod_wsgi (pid=29266): Exception occurred processing WSGI script '/var/www/html/flaskapp/flaskapp.wsgi'., referer: http:/$
 Traceback (most recent call last):, referer: http://example.com/map-day
 File "/var/www/html/flaskapp/flaskapp.wsgi", line 6, in <module>, referer: http://example.com/map-day
   from flaskapp import app as application, referer: http://example.com/map-day
 File "/var/www/html/flaskapp/flaskapp.py", line 3, in <module>, referer: http://example.com/map-day
   from flask_apscheduler import APScheduler, referer: http://example.com/map-day
 File "/usr/local/lib/python2.7/site-packages/flask_apscheduler/__init__.py", line 17, in <module>, referer: http://example.com$
   from apscheduler.schedulers.base import STATE_PAUSED, STATE_RUNNING, STATE_STOPPED, referer: http://example.com/map-day
 File "/usr/local/lib64/python2.7/site-packages/apscheduler/schedulers/base.py", line 19, in <module>, referer: http:/$
   from apscheduler.jobstores.memory import MemoryJobStore, referer: http://example.com/map-day
 File "/usr/local/lib64/python2.7/site-packages/apscheduler/jobstores/memory.py", line 4, in <module>, referer: http:/$
   from apscheduler.util import datetime_to_utc_timestamp, referer: http://example.com/map-day
 File "/usr/local/lib64/python2.7/site-packages/apscheduler/util.py", line 141, referer: http://example.com/map-day
    values = {k: int(v or 0) for k, v in values.items()}, referer: http://example.com/map-day
                               ^, referer: http://example.com/map-day
SyntaxError: invalid syntax, referer: http://example.com/map-day

在Internet上进行快速搜索后,发现similar problems的结果很少,并且在导入其他库时使用Python 2.6的用户可以体验到。建议这些用户升级到Python 2.7,此后似乎可以解决他们的问题。

但是,我正在使用Python 2.7.14和Flask-APScheduler 1.10.1。虽然我可以肯定地使用另一个库来进行后台线程处理,但我很想知道是否丢失了某些东西-问题在于字典理解,而这在Python 2.6中是无法实现的,但是我在2.7中也遇到了同样的问题。我想念什么吗?

1 个答案:

答案 0 :(得分:0)

进一步研究后,我发现在我的烧瓶wsgi配置中指定python版本不会影响使用哪个python执行我的烧瓶应用。

  

运行此命令将为我的RHEL VM提供系统默认值,即Python 2.6:

public String printGroupId(Object group) {
    if (group == null) return null;
    return (group instanceof String) ? (String) group : (group instanceof CollaboratorGroup) ? ((CollaboratorGroup) group).getGroupId() : null;
}

虽然我可以更改python默认版本或创建venv并指定要使用的python,但由于其他原因,我已切换到使用python 2.7作为系统默认值的另一个发行版。希望这对遇到类似问题的人有所帮助。