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

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

新規登録して質問してみよう
ただいま回答率
87.20%
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による文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

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

sksnsksn
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による文字列操作をサポートしているため、日本語処理も標準で可能です。

2回答

0評価

1クリップ

6301閲覧

投稿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

#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

python

#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ページの「注目」タブのフィードに表示されやすくなります。

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

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

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

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

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

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

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による文字列操作をサポートしているため、日本語処理も標準で可能です。