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

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

ただいまの
回答率

90.52%

  • Python

    7904questions

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

  • Python 3.x

    6316questions

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

  • Heroku

    864questions

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

  • Twitter

    659questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 290

sksnsksn

score 1

 前提・実現したいこと

はじめまして。

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

#coding:utf-8
import os
from bottle import route, run

@route("/")
def hello_world():
        return "hello world"

run(host="0.0.0.0", port=int(os.environ.get("PORT",5000)))

tweet.py

#coding; utf-8

from requests_oauthlib import OAuth1Session
import json
from urllib import request

username = "~~~~~~~~~~"(これは仮です)

keys = {
            "CK":'XXXXXXXXXXXXXXXXX',
            "CS":'XXXXXXXXXXXXXXXXXXXXXX',
            "AT":'XXXXXXXXXXXXXXXXXXX',
            "AS":'XXXXXXXXXXXXXX',
        }(直接置くのは無作法ではありますが自分以外使わないし当座の処置として…実際には入力されています。)

sess = OAuth1Session(keys["CK"], keys["CS"], keys["AT"], keys["AS"])

url = "https://api.twitter.com/1.1/statuses/user_timeline.json"
params = {"screen_name":username, #TwitterIDを指定
          "count":1, 
          }

req = sess.get(url, params=params)
timeline = json.loads(req.text)

for tweet in timeline:
    tweetsitanitizi = tweet["created_at"]
    tweetsitazikan = tweetsitanitizi[11:13]
    zikan= int(tweetsitazikan)


tweetnaiyou = "@"+tweet["user"]["screen_name"]+tweet["user"]["name"]+"さん、早く寝ましょう。"

if zikan > 15 and zikan < 21:
    url2 = "https://api.twitter.com/1.1/statuses/update.json"
    params2 = {"status":tweetnaiyou,
                "in_reply_to_status_id":tweet["id_str"],
    }

    req = sess.post(url2, params = params2)


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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/08 16:38

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

    キャンセル

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は自分の環境と同じにしてしまった)上手くデプロイできました。
ご回答いただいた方ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    ツイートの投稿

    大学で卒業研究としてTwitterAPIを利用したアプリケーションを開発しています。 その過程で以下のようにツイート投稿のところで行き詰まりました。 同じようなコードでタイムラ

  • 受付中

    herokuに作ったアプリがデプロイできない

    Node.jsの勉強を始めたHeroku初心者のNozです。 Node.jsのコマンドプロンプトでherokuの開発環境を整えようと、以下の内容を入力しました。 cd De

  • 解決済

    HerokuにデプロイするときのGitの使い方がわからない

     環境 macOS Sierra Python 3.6.0 :: Anaconda 4.3.0 (x86_64) Flask  やりたいこと 作成したアプリをHe

  • 解決済

    日本語を含むURLのスクレイピングについて

    そのままですが、Pythonでスクレイピングをする際に日本語が含まれているURLではエラーが出てしまいます。使っているモジュールは以下のコード通りで通常のURLではエラーは出ず、H

  • 解決済

    Django Heroku デプロイ

    DjangoにてHerokuでデプロイ過程でエラーが発生しましたが、原因が一向にわかりません。  発生している問題・エラーメッセージ (myenv) YYY-mac:Proje

  • 解決済

    twitterでの検索にユーザー名を追加する方法

    こちらを参考に「twitter」の検索を作成しています。 https://blog.apar.jp/php/3007/ こちらだと、ツイートのテキストしか表示されません。 ここ

  • 解決済

    PythonでTwitterのタイムラインを取得

    お世話になります。 PythonでTwitterのタイムラインを取得したいです。 しかし下記のようにtwitter.getが働きません。 タイムラインの取得方法を教えて

  • 解決済

    RailsアプリのHerokuデプロイ時のエラーが直りません。

    どんなに調べてもHerokuへのデプロイを行うことができません。どなたかお力を貸して頂けると幸いです。  エラー (制限字数をオーバーしてしまうので一部省略してあります)

同じタグがついた質問を見る

  • Python

    7904questions

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

  • Python 3.x

    6316questions

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

  • Heroku

    864questions

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

  • Twitter

    659questions

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