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

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

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

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Heroku

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

Python 3.x

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2554閲覧

heroku createがうまく動作しない

SuzuAya

総合スコア71

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Heroku

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

Python 3.x

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/05/09 11:13

前提・実現したいこと

Heroku CLIを使ってWebアプリを公開したいと考えています。
herokuへのログインは問題なくできるのですが、app用のURLを作成するためのheroku createを実行すると、
herokuへのログインを求められるだけでURLが作成されません。
こちらに同じような状況の方がいらっしゃり、以下が有効だと記載されていたのですが、
これをどのように試したら良いのか分からずこちらに質問をさせていただきました。
for window

  1. cmd>set HomeDrive=c:/users/xxx
  2. run heroku login again

3.when finished it will create _netrc in directory c:/users/xxx

何かお分かりの方がいらっしゃいましたらご教示いただけますようお願いいたします。

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

heroku login # 以下のErrorは出ますがログインはできます # heroku: Press any key to open up the browser to login or q to exit: # Logging in... done # Error: ENOENT: no such file or directory, open 'Z:/_netrc' heroku create # 以下のErrorが出た後に再度ログインを求められるだけで、app用のURLがcreateされません # Creating app... ! # ! Invalid credentials provided. # heroku: Press any key to open up the browser to login or q to exit: # Logging in... done # Error: ENOENT: no such file or directory, open 'Z:/_netrc'

試したこと

「 Invalid credentials provided.」というエラーも出ているのでcredentialsを確認しましたが、そもそもこのエラーが出ていてもログインは問題なくできており、credentialsの間違い等ではなさそうです。

補足情報(FW/ツールのバージョンなど)

windowsとvscodeを使用しております。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まず問題を理解するために、Heroku の公式ドキュメントを調査します。

Heroku CLI » はじめに | Heroku Dev Center より引用

CLI をインストールした後、heroku login​ コマンドを実行します。いずれかのキーを入力し、Web ブラウザに移動してログインを完了するように求められます。続いて CLI から自動的にログインします。

(略)

CLI は、将来使用できるように、メールアドレスと API トークンを ~/.netrc​ に保存します。

Heroku CLI 認証 | Heroku Dev Center より引用

メールアドレスとパスワードは、heroku​ コマンドによって API トークンを取得するために使用されます。このトークンは、他のすべての Heroku API リクエストで認証に使用され(後略)

(略)

Heroku コマンドラインツールでは、標準 Unix ファイルの ~/.netrc​ (Windows では $HOME_netrc​) に API トークンを保存します。

(略)

heroku login​ (または認証が必要なその他の heroku​ コマンド) を実行すると、~/.netrc​ ファイルが作成または更新されます。

Heroku CLI » トラブルシューティング » ログイン問題 | Heroku Dev Center より引用

ログインに問題が発生している場合は、 .netrc ファイルを移動してみてください。これは、CLI が証明書を保存する場所です。

$ mv ~/.netrc ~/.netrc.backup $ heroku login

Windows では、ファイルに ​_netrc​ という名前が付けられます。

公式ドキュメントのこれらの記述からわかること、推測できることをまとめます。

  • heroku login​ コマンドを実行すると、ユーザのホームディレクトリに、_netrc というファイルが作成され、そこにメールアドレスと API トークンが保存される(ファイルが作られるのはあくまでユーザのローカルPC上であることに注意)
  • 初回以降に heroku login​ コマンド、または認証が必要なその他の heroku​ コマンドを実行すると、_netrc ファイルが更新される
  • _netrc ファイルが移動または削除されると、次回 heroku login​ コマンドまたは認証が必要なその他の heroku​ コマンド実行時に、再度 _netrc ファイルが作られる

発生している問題・エラーメッセージを確認します。

heroku login # 以下のErrorは出ますがログインはできます # heroku: Press any key to open up the browser to login or q to exit: # Logging in... done # Error: ENOENT: no such file or directory, open 'Z:/_netrc' heroku create # 以下のErrorが出た後に再度ログインを求められるだけで、app用のURLがcreateされません # Creating app... ! # ! Invalid credentials provided. # heroku: Press any key to open up the browser to login or q to exit: # Logging in... done # Error: ENOENT: no such file or directory, open 'Z:/_netrc'

('ENOENT' という用語については、元 Heroku 開発者の方の 'ENOENT simply means that a file doesn't exist. That can happen for any number of reasons.' という言葉で、特に気にする必要がないことが分かります。)

ここから推測される問題の状況は次のようなものです。

  • ログイン後に _netrc を更新しようとして、_netrc ファイルを見つけられないでいる
  • _netrc ファイルのあるべき場所は 'Z:/_netrc' である
  • _netrc ファイルがなければ作られるはずだが、'no such file or directory' と表示されるということは、ファイルの作成自体に失敗している、もしくはファイルが作成されるパスと Heroku CLI がファイルを探しに行っているパスが食い違っている可能性がある

またこの推測に伴って次のような疑問も浮かびます。

  • そもそもZドライブがあるのかどうか
  • ユーザのホームディレクトリが 'Z:/' として認識されていると仮定すると、その値はどこからきたのか。%HOME% 環境変数からか。または類似の環境変数である %HOMEDRIVE%(規定値は C:\)と %HOMEPATH%(規定値は \Users\ユーザー名)からか
  • それらの環境変数に実際に 'Z:/' という値が設定されていたとして、それはユーザが意図した正しい値なのか
  • そもそも Heroku CLI の仕様としては、どの環境変数を参照するように作られているのか(どこに _netrc ファイルを作るように作られているのか)

以上からまず確認したいことは、

  • ユーザのホームディレクトリ(規定値ならC:\Users\ユーザー名)に _netrc という名前のファイルはあるか、もしあったとして最終更新日はいつか
  • Zドライブはあるか
  • %HOME% という名前の環境変数はあるか、あったとしてその値は
  • %HOMEDRIVE% と %HOMEPATH% 環境変数のそれぞれの値は

になります。確認の結果を踏まえて、次に何をすべきかを考えることになります。

Heroku CLI はオープンソースですので、仕様は分かる人がみたら分かるのでしょうが、私の手には余ります。
https://github.com/heroku/cli

投稿2021/05/09 17:41

etherbeg

総合スコア1195

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

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

SuzuAya

2021/05/10 00:24

>etherbeg様 非常に丁寧なご回答をありがとうございます。 以下の通り確認をいたしました。 ご質問①:ユーザのホームディレクトリ(規定値ならC:\Users\ユーザー名)に _netrc という名前のファイルはあるか、もしあったとして最終更新日はいつか 確認結果:ありました。以下に保存されていました。最終更新日は昨日5月8日でした。 C:\Users\ユーザー名.vscode\extensions\ms-python.python-2021.4.765268190\pythonFiles\lib\python\jedi\third_party\typeshed\stdlib\2and3 ご質問②:Zドライブはあるか 確認結果:はい、あります ご質問③:%HOME% という名前の環境変数はあるか、あったとしてその値は 確認結果:該当の環境変数はありませんでした。 ご質問④:%HOMEDRIVE% と %HOMEPATH% 環境変数のそれぞれの値は 確認結果:以下の通りでした。 %HOMEDRIVE%の値 Z:\ %HOMEPATH%の値 C:\
etherbeg

2021/05/10 03:28 編集

C:\Users\ユーザー名.vscode(...)\2and3 にある _netrc ファイルは、置かれてるディレクトリから見て今回の問題とは関係なさそうですね。Heroku公式ドキュメントにも「netrc 形式は広く定着していて、Unix のさまざまなネットワークツールで広くサポートされています」とありましたので、ファイル名が同じでも別々のものでしょう。 Zドライブなんてあるんですね。Windowsは職場で表面的にしか使ったことなくて。職場ではCとかDとかHとかしかみたことがないような気がします。 Zドライブってどんなドライブですか? 最初からあるドライブ? ご自分で作ったドライブ? 普段からご自分で使っているドライブですか? プログラムから普通にファイルを書き込めるドライブですか? もしZドライブの真下に _netrc ファイルがあるのなら、公式ドキュメントのトラブルシューティングにあるように、そのファイルを削除してから Heroku CLI でログインし直してみるのを試してみるといいかもしれません。 もしこれで解決したらそれでしばらく様子見てもらってもいいですが、でも多分ファイルはないでしょうし、あったとしても削除してログインし直しでは問題は解決しないでしょうし、あって解決したとしても 環境変数の方が根本的な問題のような気がするので、環境変数の方をどうにかしたほうがいいような気がします。 環境変数の値が %HOMEDRIVE%の値 Z:\ %HOMEPATH%の値 C:\ とのことですが、これらの値はご自分で設定されたものですか? 明らかに値がおかしいように思うのですが…。 ネットで調べた限りでは、%HOMEDRIVE% はホームドライブのことで通常その値は 'C:'、%HOMEPATH%はユーザのホームディレクトリのことで通常その値は '\Users\ユーザー名'、このふたつを合わせたのが %USERPROFILE% で 'C:\Users\ユーザー名'、っていうのが通常のパターンのようです。 今のままだと %USERPROFILE% も 'Z:\C:\' っていうありえない値になってしまいそうです(そうなってますか?) Heroku CLI は VSCode から実行してますか? 環境変数は 'echo %homedrive%' 等のコマンドで確認できるようですが、VSCodeから確認しても、コマンドプロンプトで確認しても、同じですか? また一度PCを再起動してみても環境変数の値に変化はないでしょうか? もし再起動でも環境変数の値に変化がなく、現在の環境変数の値で正しいのだと、ご自分で合理的な説明をつけられないのであれば、何らかの理由で環境変数が書き換わったことが、今回の不具合の原因という可能性があると思います。 書き換わった原因やどう直せばいいのかについては、Windowsに詳しくない私は的確な答えができるかどうか心許ないです。規定値の 'HOMEDRIVE=C:' と 'HOMEPATH=\Users\ユーザー名'に戻せばいいのでは、と思いますが、それで本当にいいのかは確信が持てませんし、原因については(ご自分で書き換えたのでなければ)まったく分かりません。 他に詳しい人が回答・コメントを追加してくれないようであれば、タグを変えて別に質問を立てるのも一つの手かも知れません。
SuzuAya

2021/05/10 06:35

ご回答ありがとうございます。 ①_netrcファイルを削除 ②Power shellでset homedrive=C:を実行 ③heroku login --interactiveでログイン(webページからは「IPaddress mismatch」というエラーが出てログインできなくなったため) 上記3つを実行したところ、heroku createでapp用のURLを作成することができました。 git側で別のエラーが出て、まだappを公開できていませんが、heroku createのエラーがなくなり大変助かりました。ご丁寧なご回答を本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問