Heroku无法启动Python Flask应用程序(“AttributeError:“function”对象没有“uses_netloc”属性)

Heroku无法启动Python Flask应用程序(“AttributeError:“function”对象没有“uses_netloc”属性),python,postgresql,function,heroku,web-deployment,Python,Postgresql,Function,Heroku,Web Deployment,我正在尝试部署heroku应用程序,不幸的是,我遇到以下错误。基本上,Heroku日志告诉您如何获得Heroku数据库连接,如下所示: 我开始使用gunicorn,但我无法理解我遇到的错误,因为它像10个工人一样繁殖,所以我切换到waitress,我从heroku日志中得到以下错误: 因此,默认情况下,文档中的heroku方法被破坏了!那太糟糕了!我不知道如何解决这个问题,其他人有什么想法吗 您尚未显示inflation.py中的实际代码。在这段代码中,几乎可以肯定您是在从URLPRASE导入U

我正在尝试部署heroku应用程序,不幸的是,我遇到以下错误。基本上,Heroku日志告诉您如何获得Heroku数据库连接,如下所示:

我开始使用gunicorn,但我无法理解我遇到的错误,因为它像10个工人一样繁殖,所以我切换到waitress,我从heroku日志中得到以下错误:


因此,默认情况下,文档中的heroku方法被破坏了!那太糟糕了!我不知道如何解决这个问题,其他人有什么想法吗

您尚未显示inflation.py中的实际代码。在这段代码中,几乎可以肯定您是在从URLPRASE导入URLPRASE,而不是像示例代码中那样导入模块。

对于python 3,URLPRASE库现在是urllib.parse

因此,heroku示例适用于python 2应用程序,但对于python 3应用程序,以下更改应该有效:

导入urllib.parse

urllib.parse.uses_netloc.appendpostgres
url=urllib.parse.urlparseos.environ[DATABASE_url]

在Python 3中,您需要使用urllib.parse而不是urlparse

而不是

import urlparse

urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse(os.environ["DATABASE_URL"])

我在使用gunicorn的Python3上遇到了相同的错误。嗯……我该如何把它翻译成Python 3呢?从urllib.parse导入urlparse,对吗?
2017-07-16T22:21:52.941072+00:00 app[web.1]: Exception in thread Thread-1:
2017-07-16T22:21:52.941072+00:00 app[web.1]: Traceback (most recent call last):
2017-07-16T22:21:52.941073+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/threading.py", line 801, in __bootstrap_inner
2017-07-16T22:21:52.941073+00:00 app[web.1]:     self.run()
2017-07-16T22:21:52.941073+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/threading.py", line 754, in run
2017-07-16T22:21:52.941074+00:00 app[web.1]:     self.__target(*self.__args, **self.__kwargs)
2017-07-16T22:21:52.941074+00:00 app[web.1]:   File "/app/timed/inflation.py", line 28, in inflatemethod
2017-07-16T22:21:52.941075+00:00 app[web.1]:     urlparse.uses_netloc.append("postgres")
2017-07-16T22:21:52.941075+00:00 app[web.1]: AttributeError: 'function' object has no attribute 'uses_netloc'
import urllib.parse

urllib.parse.uses_netloc.append('postgres')
url = urllib.parse.urlparse(os.environ['DATABASE_URL'])
import urlparse

urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse(os.environ["DATABASE_URL"])