質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

6856閲覧

Herokuのデプロイがうまくいかない。

sksnsksn

総合スコア7

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/05/07 19:58

前提・実現したいこと

はじめまして。

PythonでTwitterのBot
(特定のアカウントのツイートを取得し、深夜だった場合リプライを送る)を作成し、
Herokuで運用しようとしていたのですが、
デプロイがうまくいかないので質問させていただきます。

発生している問題・エラーメッセージ

デプロイがうまくいきません。
Pythonがサポート外だといわれるのですが、
python-3.6.5を導入しており原因が分かりません。

おそらくあっちこっちから継ぎ接ぎで作ったのが原因だと思うのですが…

以下エラーメッセージです。
===================================

remote: -----> Python app detected
remote: ! The latest version of Python 3 is python-3.6.5 (you are using python-3.6.5, which is unsupported).
remote: ! We recommend upgrading by specifying the latest version (python-3.6.5).
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing python-3.6.5
remote: ! Requested runtime (python-3.6.5) is not available for this stack (heroku-16).
remote: ! Aborting. More info: https://devcenter.heroku.com/articles/python-support
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to morning-bastion-45920.
remote:
To https://git.heroku.com/morning-bastion-45920.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/morning-bastion-45920.git'

###ソースコード
Procfile

web: python index.py

index.py

python

1#coding:utf-8 2import os 3from bottle import route, run 4 5@route("/") 6def hello_world(): 7 return "hello world" 8 9run(host="0.0.0.0", port=int(os.environ.get("PORT",5000)))

tweet.py

python

1#coding; utf-8 2 3from requests_oauthlib import OAuth1Session 4import json 5from urllib import request 6 7username = "~~~~~~~~~~"(これは仮です) 8 9keys = { 10 "CK":'XXXXXXXXXXXXXXXXX', 11 "CS":'XXXXXXXXXXXXXXXXXXXXXX', 12 "AT":'XXXXXXXXXXXXXXXXXXX', 13 "AS":'XXXXXXXXXXXXXX', 14 }(直接置くのは無作法ではありますが自分以外使わないし当座の処置として…実際には入力されています。) 15 16sess = OAuth1Session(keys["CK"], keys["CS"], keys["AT"], keys["AS"]) 17 18url = "https://api.twitter.com/1.1/statuses/user_timeline.json" 19params = {"screen_name":username, #TwitterIDを指定 20 "count":1, 21 } 22 23req = sess.get(url, params=params) 24timeline = json.loads(req.text) 25 26for tweet in timeline: 27 tweetsitanitizi = tweet["created_at"] 28 tweetsitazikan = tweetsitanitizi[11:13] 29 zikan= int(tweetsitazikan) 30 31 32tweetnaiyou = "@"+tweet["user"]["screen_name"]+tweet["user"]["name"]+"さん、早く寝ましょう。" 33 34if zikan > 15 and zikan < 21: 35 url2 = "https://api.twitter.com/1.1/statuses/update.json" 36 params2 = {"status":tweetnaiyou, 37 "in_reply_to_status_id":tweet["id_str"], 38 } 39 40 req = sess.post(url2, params = params2) 41

runtime.text

python-3.6.5

requirements.text

jsonlib-python3==1.6.1

oauthlib==2.0.6
requests-oauthlib==0.8.0
urllib3==1.21.1
requests==2.18.4
bottle==0.12.13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

runtime.text

python-3.6.4

requirements.text

bottle==0.12.13

certifi==2017.7.27.1
chardet==3.0.4
click==6.7
jsonlib-python3==1.6.1
MarkupSafe==1.0
matplotlib==2.1.0
numpy==1.13.3
oauthlib==2.0.6
pipenv==11.10.1
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
requests==2.18.4
requests-oauthlib==0.8.0
six==1.11.0
urllib3==1.21.1
virtualenv==15.2.0
virtualenv-clone==0.3.0
webencodings==0.5.1
Werkzeug==0.12.2

と編集した結果、(特にrequirementsは自分の環境と同じにしてしまった)上手くデプロイできました。
ご回答いただいた方ありがとうございました。

投稿2018/05/08 07:37

sksnsksn

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

https://devcenter.heroku.com/articles/python-runtimes

3.6.5はまだ対応していないようです。

投稿2018/05/07 21:09

bluevinyl

総合スコア129

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sksnsksn

2018/05/08 07:38

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問