为了弄清楚为什么 dateparser(0.7.6 和 1.0.0)不能在 Python 下的 Flask(Flask 1.1.2,Werkzeug 1.0.1)中工作,我将一个更大的 Flask 应用程序缩减到了基本要素3.8.5 在 Windows 10 中。
运行.py
from mytest import app as _application
def application(environ, start_response):
return _application(environ, start_response)
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 5003, application, use_reloader=True, use_debugger=True, threaded=True, use_evalex=True)
我的测试.py
import os, dateparser, time
from flask import Flask
app = Flask(__name__)
# os.environ['TZ'] = 'UTC'
@app.route('/')
def date_test():
parsed = dateparser.parse('01/13/2021')
return 'Date parse results are: {}'.format(parsed)
此应用程序运行良好 - 转到http://127.0.0.1:5003会产生“日期解析结果为:2021-01-13 00:00:00 ”
但是,如果我在 mytest.py ( os.environ['TZ'] = 'UTC') 中取消注释第 5 行,dateparser 会突然停止工作,并且 URL 返回“日期解析结果为:无”
我发现有一些方法可以缓解它:
- 在 run.py 中,将
from mytest import app as _application行移到application函数中 - 在 mytest.py 中,将
os.environ['TZ']...行移到date_test函数中
但我真的不明白为什么问题会首先发生,或者为什么这两个“解决方案”中的任何一个实际上都能解决问题。
我错过了什么?