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

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

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

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

Q&A

解決済

1回答

720閲覧

.pyファイルを.exeファイルに変換し、動作するようにしたい

itokazuhiro1989

総合スコア1

Python

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

0グッド

0クリップ

投稿2023/02/24 01:34

編集2023/02/27 03:56

実現したいこと

.pyファイルを.exeファイルに変換し、動作するようにしたい。

前提

作業環境:windows10
python 3.8.10

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

pyinstallerでexe化することは可能ですが、exeファイル化後は一瞬コマンドプロンプトのような画面が出て消える

該当のソースコード

pyhthon

1# bitflyer用のライブラリを読み込む 2import pybitflyer 3# time 4import time 5#requests 6#マーケット情報を取得するために必要 7import requests 8#hmac 9#資産情報取得を取得するために必要 10import hmac 11#hashlib 12#資産情報取得を取得するために必要 13import hashlib 14# json 15#なんやかんやと必要 16import json 17#datetime 18#発注時に必要 19import datetime 20#statistics 21#算術平均を出すのに必要 22import statistics 23#math 24#計算に必要 25import math 26#n次元配列リスト 27import numpy as np 28 29#ウィンドウ作成 30import tkinter as tk 31import matplotlib.pyplot as plt 32from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg 33from matplotlib.figure import Figure 34 35# 常数 36 37# スリープ秒数 38SLEEP_T = 2 39 40# private api 41 42 43 44# おまじない 45if __name__ == '__main__': 46 # Tkinterウィンドウを作成する 47 root = tk.Tk() 48 #root.geometry("800x800") 49 root.title("Tick-Tack") 50 51 # GUIウィンドウの作成と設定 52 # MatplotlibのFigureを作成する 53 fig = Figure(figsize=(6, 4), dpi=200) 54 55 while True : 56 57 try : 58#ココから 59 60 61 #マーケット情報を確認します 62 response = requests.get("https://api.bitflyer.jp/v1/ticker/") 63 data = response.json() 64 65 #list_ALL[0][0] = data["timestamp"] 66 list_ALL[0][1] = data["ltp"] 67 68 # 資産情報取得を確認します 69 asset_jpy, asset_btc = fnc_get_asset( api_key, api_secret) 70 71 # 注文履歴を確認します 72 order_all = fnc_get_orders( api_key, api_secret, product_code, child_order_state) 73 order_001 = order_all[0] 74 del order_all 75 #注文サイド 76 if order_001["side"] == "SELL": 77 list_ALL[0][20] = order_001["price"]*0.985 78 if order_001["side"] == "BUY": 79 list_ALL[0][20] = order_001["price"]*1.015 80 81 for i in range(1800,0,-1): 82 for j in range(0,34,1): 83 list_ALL[i][j] = list_ALL[i-1][j] 84 85 #16s平均 86 for i in range(0,8,1): 87 I_even16[i] = list_ALL[i][1] 88 list_ALL[0][4] = statistics.median(I_even16) 89 90 #10min平均 91 for i in range(0,300,1): 92 I_even600[i] = list_ALL[i][1] 93 list_ALL[0][18] = statistics.median(I_even600) 94 95 #26min平均 96 for i in range(0,780,1): 97 I_even1560[i] = list_ALL[i][1] 98 list_ALL[0][19] = statistics.median(I_even1560) 99 100 #グラフ用関数 101 for i in range(0,1800,1): 102 list_tim[i] = i 103 updated_y01[i] = list_ALL[i][4] 104 updated_y04[i] = list_ALL[i][18] 105 updated_y05[i] = list_ALL[i][19] 106 updated_y06[i] = list_ALL[i][20] 107 108 updated_x=list_tim 109 110 # Figure内にAxesを作成する 111 ax = fig.add_subplot(111) 112 113 # Axesにデータをプロットする 114 g1 = ax.plot(updated_x,updated_y01,linestyle="-", color="k") 115 g4 = ax.plot(updated_x,updated_y04,linestyle="-", color="g") 116 g5 = ax.plot(updated_x,updated_y05,linestyle="-", color="y") 117 g6 = ax.plot(updated_x,updated_y06,linestyle="-", color="c") 118 #複数のグラフをまとめて表示する 119 # 凡例を追加 120 ax.legend((g1[0], g4[0],g5[0],g6[0]),("ltp","10min","26min","Target"),) 121 # グラフタイトル 122 ax.set_title("Tick-Tack") 123 # X軸のラベル 124 ax.set_xlabel("X-axis") 125 # Y軸のラベル 126 ax.set_ylabel("Y-axis") 127 128 # FigureをTkinterのキャンバス上に描画する 129 canvas = FigureCanvasTkAgg(fig, master=root) 130 canvas.draw() 131 132 # キャンバスをTkinterウィンドウに配置する 133 canvas.get_tk_widget().pack() 134 135 # イベントループを処理する 136 root.update() 137 138 # 0.2秒間一時停止 139 plt.pause(0.2) 140 # Figure内のすべてのAxesをクリア 141 ax.clear() 142 143 canvas.get_tk_widget().destroy() 144 145#ココまでの処理エラーは無視される 146 147 except Exception as e: 148 print("exception: ", e.args) 149 150 del timestamp 151 152 153 count_01+=1 154 155 # sleep 156 # 2秒待ってのループ処理 157 time.sleep(SLEEP_T) 158 159 # イベントループを開始す 160 root.mainloop() 161

試したこと

他PCで同環境のpythonだと動作することを確認済み

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

ご回答お待ちしております。イメージ説明
python実行時動作画面
ここにより詳細な情報を記載してください。

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

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

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

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

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

otn

2023/02/24 04:22

> exeファイル化後は一瞬コマンドプロンプトのような画面が出て消える って、Explorerからダブルクリックで実行していると言うことですか?? コマンドプロンプトで実行すれば、エラーメッセージがあれば目で見えると思いますが。 エラーメッセージ無く終わり、期待する出力も無いと言うことであれば、少しずつ実行してみるのでしょうか。
PondVillege

2023/02/24 08:10

pyinstallerでexe化するときのオプションを明示してください
itokazuhiro1989

2023/02/25 07:39

pyinstallerでexe化するときは pyinstaller --onefile my_script.py で行いました。
PondVillege

2023/02/25 08:45

実行中にエラーが無ければ--noconsoleオプション付けるだけでコマンドプロンプトの画面は出なくなります.このオプション付けても画面が出るなら実行中にエラーが起きています
itokazuhiro1989

2023/02/25 09:30

ご回答ありがとうございます。 コマンドプロンプトから実行するとエラーメッセージが表示されるのを知りませんでした。 エラー原因が分かり上手くexe化→実行することが出来ました。 ありがとうございます。 この質問は数日したら消します。 ご協力していただいた投稿者さまには感謝です。
otn

2023/02/25 14:43

> コマンドプロンプトから実行するとエラーメッセージが表示されるのを知りませんでした。 いいえ。違います。 ダブルクリックしてもエラーメッセージは表示されています。ウィンドウがすぐに消えるので人間が見て把握できないだけです。 > この質問は数日したら消します。 そういうことは、質問を見た人や、コメント・回答した人への裏切り行為なので止めましょう。
guest

回答1

0

自己解決

コマンドプロンプトから実行しエラーメッセージを確認できたのでプログラム修正出来ました。

while構文内に置くプログラムを改善しました。

無事動くようになりました。
ありがとうございます。

投稿2023/03/01 09:27

itokazuhiro1989

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問