我正在尝试在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中也遇到了同样的问题。我想念什么吗?
答案 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作为系统默认值的另一个发行版。希望这对遇到类似问题的人有所帮助。