2017-11-04 3 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/초기화/
  4. 편집 my_upstart.conf 교체 집 주소로
  5. sudo service my_upstart start
  6. ,210
  7. curl localhost:5001/vis -H "콘텐츠 유형 : 텍스트/CSV"my_upstart.log에서
  8. 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

gunicorn 해결하려면 다음 단계를 따라 파이썬 2를 사용하고 있으며 wheras 내가 파이썬 3을 사용하고, 배포 패키지를 해당하는 것 :

    /usr/bin/gunicorn에서
  1. sudo pip3 install gunicorn
    • 첫 번째 줄을 편집 #!/usr/bin/python3 (python 대신) 및
    • 을 변경하면 어디서든 어떤 버전의 gunicorn이든 일치하는 것으로 보입니다. gunicorn --version는 말합니다.
1

파이썬 버전 2와 3의 open 문서를 비교하면 전달할 수있는 매개 변수의 차이가 상당하다는 것을 알 수 있습니다. 특히 newline 매개 변수는 Python 2에서 사용할 수 없습니다.

내 생각에 gunicorn을 실행하면 버전 2 Python 실행 파일이 선택됩니다.

자세한 내용은 Cannot get gunicorn to use Python 3을 참조하십시오.