2017-07-16 13 views
0

私はherokuアプリケーションをデプロイしようとしていますが、残念ながら次のエラーが発生します。基本的にHerokuのログがHerokuのデータベース接続を取得するために行うためにあなたを伝えるものです(ここから取られ; https://devcenter.heroku.com/articles/heroku-postgresql)を以下のHerokuはPython Flask Appを起動できません(AttributeError: 'function'オブジェクトに属性 'uses_netloc'がありません)

import os 
import psycopg2 
import urlparse 

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

conn = psycopg2.connect(
    database=url.path[1:], 
    user=url.username, 
    password=url.password, 
    host=url.hostname, 
    port=url.port 
) 

私はgunicornを使用し始めたが、私はのでなっていたエラーを理解できませんでしたそれは10人の労働者と同様に産卵されたので、私はウェイトレスに切り替え、私は(heroku logsから)、次のエラーを得た:

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' 

ので、デフォルトではドキュメントであるHerokuの方法が壊れています!それは悪いです!私はこれをどのように修正するか分からない、他の誰かがアイデアを持っていますか?

+0

私はgunicornでPythonの3に同じエラーを取得しています。うーん... –

答えて

1

あなたは実際のコードをinflation.pyから表示していません。そのコードでは、例コードのようにモジュールをインポートするのではなく、ほぼ確実にfrom urlparse import urlparseを実行しています。 Pythonの3のために

+0

これをPython 3に翻訳するにはどうすればいいですか? 'from urllib.parse import urlparse'、そうですか? –

0

urlparseライブラリはのpython3は、以下の変更が動作するはずAppsのだから、Herokuのサンプルは、しかし、Python用2つのアプリの良いですurllib.parse今

です:

urllib.parse

インポート

urllib.parse.uses_netloc.append( "postgresの") URL = urllib.parse.urlparse(はos.environ [ "DATABASE_URL"])

関連する問題