2017-11-04 29 views
1

でアプリを実行しているとき、私が取得:のpython3エラーgunicorn

TypeError: 'newline' is an invalid keyword argument for this function

は、私は、コマンドラインから実行すると、しかし、私は何の問題もありません。

私はnewlineがファイルオープンにあるべきであることを示し、csv.writerではないという解決策を見ました。あなたが見ることができるように、私は実際にファイルのオープニングにそれを持っています。

を再作成するには :my_app.py保存/ホーム/へ

  1. - あなたの家 - my_upstart.conf救うために/
  2. chmod u+x /home/--your home--/my_app.py
  3. は/ etc/initを/
  4. 編集my_upstart.confを交換しますあなたの家のdirと
  5. sudo service my_upstart start
  6. curl localhost:5001/vis -H "のContent-Type:テキスト/ CSV" my_upstart.log
  7. sudo cat /var/log/upstart/my_upstart.log

、あなたはTypeError

my_app.py

#!/usr/bin/python3 
from flask import Flask, request 

app = Flask(__name__) 

@app.route('/vis/', strict_slashes=False) 
def vis(): 
    with (open('~/test.csv', mode='w', newline='')) as f: 
     writer = csv.writer(f) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=5001) 

上記表示されますmy_upstart.conf

description "Gunicorn config file for serving the Wellness app" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 
setuid ubuntu 
setgid ubuntu 

script 
    cd /home/<your home>/ 
    exec gunicorn --bind 0.0.0.0:5001 my_app:app 
end script 
+0

問題を再現できません。 [編集]に[mcve]を含めるようにしてください。完全なトレースバックは何ですか? – davidism

+0

@davidism私は問題を再現するための手順でOPを更新しました。ありがとう! – dbconfession

答えて

0

修正するには、次の手順に従っ:

/usr/bin/gunicorn
  1. sudo pip3 install gunicorn
    • 編集した最初の行#!/usr/bin/python3pythonの代わりに)と
    • のいずれかに一致するように見えたのはどこでも変わったように見えるgunicorn --versionは言う。
1

Pythonバージョン2と3のopenのドキュメントを比較すると、渡すことができるパラメータに大きな違いがあることに注意してください。特に、パラメータnewlineはPython 2では利用できません。

私は、gunicornを実行するとバージョン2のPython実行可能ファイルが選択されると考えています。

詳細はCannot get gunicorn to use Python 3を参照してください。私のpython 3を使用していますwheras、gunicornのpython 2を使用していたし、それが対応する配布パッケージです