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

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

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

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

解決済

Pythonのexeファイル化ができません

Rena_StarPrince
Rena_StarPrince

総合スコア1

Python

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

3回答

0リアクション

0クリップ

638閲覧

投稿2021/11/02 13:20

下記のコードでブロック崩しのゲームをexeファイル化しようとしましたができません。

pip install pyinstaller
pyinstaller ブロック崩し.py --onefile
というコマンドを打ち込みexeファイル化はできるのですが、コマンドプロンプトが開いた後すぐ閉じてしまいます。
どうすればよいでしょうか。

Ptthonは3.6を利用しています。

Python

コード #!python.3.6 #ブロック崩し import tkinter as tk from tkinter import messagebox #変数(追加) score=0 time=0 index=0 #キー key="" def key(e): global key key=e.keysym #ウィンドウ win=tk.Tk() win.title("ブロック崩し") win.geometry("425x625") win.resizable win.bind("<KeyPress>", key) #キャンバス can=tk.Canvas(bg="black",width=400,height=600) can.place(x=10,y=10) #ゲームオーバー def gameOver(): if index==1 or index==2 or index==3: messagebox.showinfo("Information","GAME OVER") exit() #ゲームクリア def gameClear(): if index==1 or index==2 or index==3: messagebox.showinfo("Information","CONGRATURATIONS") exit() #ボール global bx global by ball_x=50 ball_y=500 bx=5 by=-5 def drawBall(): global ball_x global ball_y global bx global by ball_id = can.create_oval(0, 0, 20, 20, fill="white") can.coords(ball_id, ball_x, ball_y, ball_x+20, ball_y+20) if ball_x<=0 or ball_x>=385: bx *=-1 if ball_y<=0: by *= -1 if ball_y>=600: gameOver() if ball_y>=560 and ball_x>=rack_x-10 and ball_x<=rack_x+70: by *=-1 ball_x += bx;ball_y += by #ボールスピード #ラケット rack_x=170 keyPress_R=False keyPress_L=False def rightKeyPress(event): global keyPress_R keyPress_R=True def rightKeyRelease(event): global keyPress_R keyPress_R=False def leftKeyPress(event): global keyPress_L keyPress_L=True def leftKeyRelease(event): global keyPress_L keyPress_L=False win.bind("<KeyPress-Right>",rightKeyPress) win.bind("<KeyRelease-Right>",rightKeyRelease) win.bind("<KeyPress-Left>",leftKeyPress) win.bind("<KeyRelease-Left>",leftKeyRelease) def drawRacket(): global rack_x can.create_rectangle(rack_x,580,rack_x+60,595,fill="white") if keyPress_R==True and rack_x<=350: rack_x +=5 if keyPress_L==True and rack_x>=-10: rack_x-=5 #ブロック1 block=[] for x in range(5): for y in range(4): block.append({"x":x*80+5,"y":y*40+10,"st":1}) def drawBlock(): global ball_x global ball_y global by global score#(追加) block_count=0 for i in range(len(block)): x=block[i]["x"] y=block[i]["y"] st=block[i]["st"] if ball_y<=y+30 and ball_x>=x-10 and ball_x<=x+60 and st==1: by*=-1 block[i]["st"]=0 score=score+10#(追加) if st==1: can.create_rectangle(x,y,x+70,y+30,fill="white") block_count+=1 if block_count==0: gameClear() #スコア(追加) def drawScore(): can.create_text(30,550,text="SCORE:"+str(score),fill="white") #時間 def drawTime(): can.create_text(30,570,text="Time:"+str(time),fill="white") #画面推移(追加) def gamemain(): global index if index==0: can.create_text(200,100,text="ブロック崩し",anchor="center",font=("HG丸ゴシックM-PRO",24),fill="white") can.create_text(200,500,text="Press [1]Easy",anchor="center",font=("HG丸ゴシックM-PRO",24),fill="white") can.create_text(200,535,text="[2]Normal",anchor="center",font=("HG丸ゴシックM-PRO",24),fill="white") can.create_text(200,570,text="[3]Hard",anchor="center",font=("HG丸ゴシックM-PRO",24),fill="white") if key=="1": index=1 elif key=="2": index=2 elif key=="3": index=3 can.after(15,gamemain) elif index==1: global bx global by bx=5 by=-5 def gameLoop(): can.delete("all") drawBall() drawRacket() drawBlock() drawScore()#(追加) drawTime()#追加 win.after(50,gameLoop) gameLoop() elif index==2: bx=7 by=-7 def gameLoop(): can.delete("all") drawBall() drawRacket() drawBlock() drawScore()#(追加) drawTime()#追加 win.after(50,gameLoop) gameLoop() elif index==3: bx=10 by=-10 def gameLoop(): can.delete("all") drawBall() drawRacket() drawBlock() drawScore()#(追加) drawTime()#追加 win.after(50,gameLoop) gameLoop() #表示ループ gamemain() #ウィンドウループ win.mainloop

以下のような質問にはリアクションをつけましょう

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

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

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

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

適切な質問に修正を依頼しましょう。

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

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

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

Python

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