2017-09-23 1 views
0

내 범위는 cron 작업을 통해 클라우드에서 파이썬 스크립트 (웹 사이트의 텍스트를 스크랩하고 csv 파일로 저장)를 실행하는 것입니다. 이것을 위해 나는 Heroku를 선택했다.Heroku에서 Python Worker 실행 - 푸시 실패

작업자를 배치하려고 시도 할 때 푸시 거부가 발생하기 때문에 막혔습니다.

다음은 내가하는 일입니다. 내 scrapit.py와 Procfile ('worker : node scrapit.py')을 디렉토리에 넣습니다. 내가 Heroku가에서 응용 프로그램을 만든 후

그런 다음, 나는 위의 디렉토리에서 다음 명령을 보내

$ heroku login 
$ git init 
$ heroku git:remote -a app-name-on-heroku 
$ git add . 
$ git commit -am "nth time :(" 
$ git push heroku master 

나는 다음과 같은 메시지가 얻을 :이 전송 오류 후

Counting objects: 41, done. Delta compression using up to 4 threads. Compressing objects: 100% (36/36), done. Writing objects: 100% (41/41), 12.97 KiB | 0 bytes/s, done. Total 41 (delta 6), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> App not compatible with buildpack: https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to app-name-on-heroku. remote: To https://git.heroku.com/app-name-on-heroku.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to ' https://git.heroku.com/app-name-on-heroku.git '

을 명령

heroku buildpacks:set heroku/python 

여전히 푸시는 거부됩니다

+0

필요합니까? requirements.txt가 필요합니까? – user3755529

답변

1

모든 Heroku 빌드 팩은 bin/detect 파일을 지정하므로 플랫폼에서 해당 빌드 팩을 해당 응용 프로그램과 함께 사용할 수 있는지 여부를 알 수 있습니다.

파이썬 빌드 팩에는 requirements.txt, setup.py 또는 Pipfile이 있어야합니다.
파이썬 응용 프로그램을 구축 할 수 있으려면 해당 파일 중 하나를 만들어야합니다 (올바르게 구성해야합니다).

+0

그것은 효과가있다. 이제 파이썬 스크립트는 .csv 파일을 작성한다고 가정합니다. 그것은 Heroku가 그것을 실행하는 것, 나는 그 파일을 Heroku에서 Git으로 가져 오는 것을 기대하고 있었지만, 끌어낼 수있는 것이 아무것도 나타나지 않습니다. 어떻게 그 .csv 파일을 얻을 수 있는지, 심지어 Python 스크립트가 실제로 Heroku에 쓰는 지 궁금합니다. – user3755529

+1

https://devcenter.heroku.com/articles/how-heroku-works#running-applications-on-dynos를 읽으십시오. 각 heroku dyno는 컨테이너입니다. 디스크에 파일을 쓰는 것은 GIT 저장소를 변경하지 않습니다. 파일을 작성하고 검색해야하는 경우 Amazon S3와 같은 시스템에 저장하거나 자체 HTTP 엔드 포인트를 설정해야합니다. –

관련 문제