Python 部署Flask应用程序时出现dateutil语法错误

Python 部署Flask应用程序时出现dateutil语法错误,python,heroku,flask,deployment,Python,Heroku,Flask,Deployment,我正在尝试使用Heroku部署flask应用程序()。当我部署它时,它会立即崩溃。我无法判断重定向是否告诉我代码中有错误(它在本地浏览器端口上运行正常)、虚拟环境中有错误或外部库中有错误 我尝试过更新AppDir和flask dateutil库。我尝试过从Heroku git cli和Github部署。我检查了我的代码,看看是否遗漏了什么(但正如我所说,它在本地运行良好),我甚至尝试重新启动。我认为这个问题超出了我的经验水平 以下是Heroku的相关错误日志(大大截断): 文件 “/app/.h

我正在尝试使用Heroku部署flask应用程序()。当我部署它时,它会立即崩溃。我无法判断重定向是否告诉我代码中有错误(它在本地浏览器端口上运行正常)、虚拟环境中有错误或外部库中有错误

我尝试过更新AppDir和flask dateutil库。我尝试过从Heroku git cli和Github部署。我检查了我的代码,看看是否遗漏了什么(但正如我所说,它在本地运行良好),我甚至尝试重新启动。我认为这个问题超出了我的经验水平

以下是Heroku的相关错误日志(大大截断):

文件 “/app/.heroku/python/lib/python3.6/site packages/alembic/script/base.py”, 第7行,在 从dateutil导入tz文件“/app/.heroku/python/lib/python3.6/site packages/dateutil/tz.py”,第行 78
self.\u name
, ^


看起来alembic依赖于python dateutil。在您的
Requirements.txt
中,确保alembic位于dateutil条目之后,然后再次尝试将应用程序推送到heroku

看起来alembic依赖于python dateutil。在您的
Requirements.txt
中,确保alembic位于dateutil条目之后,然后再次尝试将应用程序推送到heroku

卸载python dateutil:

pip uninstall python-dateutil
pip freeze > requirements.txt
并安装新版本:

pip uninstall python-dateutil
pip freeze > requirements.txt
我使用这个版本

如果您有requirements.txt文件,请记住在那里手动更改python dateutil的版本,或者尝试以下操作:

pip uninstall python-dateutil
pip freeze > requirements.txt

如果你没有一个要求.txt,考虑做一个,因为它是“好的实践”,并且确实是有用的<强> < /p> < P> <强>卸载Python DATUTIL:< /强>

pip uninstall python-dateutil
pip freeze > requirements.txt
并安装新版本:

pip uninstall python-dateutil
pip freeze > requirements.txt
我使用这个版本

如果您有requirements.txt文件,请记住在那里手动更改python dateutil的版本,或者尝试以下操作:

pip uninstall python-dateutil
pip freeze > requirements.txt

<强>如果你没有一个要求.txt,考虑做一个,因为它是“好的实践”,而且确实是有用的< /强>

我把Python DATUTIL移动到AlbBIC之上,它也产生了同样的错误。我也有同样的错误。原因是heroku在依赖项中有
python dateutil==1.5.0
,其中包括python3.6I的不推荐语法。我将python dateutil移到了alembic之上,它产生了相同的错误。我也有相同的错误。原因是heroku在依赖项中有
python dateutil==1.5.0
,其中包括python3.6的不推荐语法。您是否尝试在新的virtualenv中运行repo的新副本?尝试模仿Heroku在部署时所做的操作。只需在
requirements.txt
中设置
python-dateutil==2.8.1
,我就解决了这个问题。Heroku使用的python dateutil==1.5.0似乎与python-3.6.13存在兼容性问题。推送时,Heroku给出了这个错误:Heroku 0.1.4要求python dateutil==1.5,但您将得到python dateutil 2.8.1,它是不兼容的。,然后成功地显示了已安装的python-dateutil-2.8.1。我不知道这里发生了什么,但一切都开始正常工作了!XD您是否尝试在新的VirtualNV中运行回购协议的新副本?尝试模仿Heroku在部署时所做的操作。只需在
requirements.txt
中设置
python-dateutil==2.8.1
,我就解决了这个问题。Heroku使用的python dateutil==1.5.0似乎与python-3.6.13存在兼容性问题。推送时,Heroku给出了这个错误:Heroku 0.1.4要求python dateutil==1.5,但您将得到python dateutil 2.8.1,它是不兼容的。,然后成功地显示了已安装的python-dateutil-2.8.1。我不知道这里发生了什么,但一切都开始正常工作了!非常感谢!!老掉牙的回答,但这对我有好处!非常感谢你!!老掉牙的回答,但这对我有好处!