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

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

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

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

Python

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

Q&A

解決済

3回答

23479閲覧

Pythonの.exeがすぐ閉じてしまう

fmjg

総合スコア11

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/06/26 01:33

Python3.6.5でClassを使って計算したものを表示するプログラムを作成し、それをcx_Freezeを使ってexe化しました。
setup.pyでexe化したものを実行するとコマンドプロンプトが一瞬だけ立ち上がり、すぐ閉じてしまいます。
目を凝らしてみたところ、プログラムの表示はしっかりしており、エラーなども表示されません。
教えてください。

setup.py

1# coding: utf-8 2# cx_Freeze 用セットアップファイル 3 4import sys 5import os 6from cx_Freeze import setup, Executable 7 8base = None 9 10# GUI=有効, CUI=無効 にする 11#if sys.platform == 'win32' : base = 'Win32GUI' 12 13 14# セットアップ 15setup( name = "sample", 16version = "1.0", 17description = "converter", 18executables = [Executable("sample.py", base=base)])

sample.py

1 2class Natural(int): 3 def __init__(self,num): 4 self.num = num 5 int.__init__(self) 6 7 def __add__(self, other): 8 return Natural((self.num).__add__(other.num)) 9 10 def __sub__(self, other): 11 if self.num >= other.num: 12 return Natural((self.num).__sub__(other.num)) 13 else: 14 return Natural(0) 15 16 17 def __mul__(self, other): 18 return Natural((self.num).__mul__(other.num)) 19 20 21 def __floordiv__(self, other): 22 return Natural((self.num).__floordiv__(other.num)) 23 24a = Natural(1) 25b = Natural(2) 26print(a+b) 27print(type(a+b)) 28c = Natural(9) 29d = Natural(3) 30print(c//d) 31print(type(c//d))

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

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

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

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

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

guest

回答3

0

ベストアンサー

コマンドプロンプトが一瞬だけ立ち上がり、すぐ閉じてしまいます。

はい、printして終了、というプログラムなのでその通りに動いているだけです。

どうにかしたいのであれば、対策は2つ考えられます。

  • 直接ダブルクリックで起動せずに、コマンドプロンプトなどから実行する
  • 最後にinput()などで標準入力を待つようにする

投稿2019/06/26 01:36

maisumakun

総合スコア145121

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

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

fmjg

2019/06/26 01:51

知識不足でした。 ありがとうございます!
guest

0

表示が終わったらすぐプログラムが終了してるからじゃないですかね。

投稿2019/06/26 01:36

gentaro

総合スコア8949

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

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

0

最後の行にinput()を追記すると入力待機状態になってエンターを入力するまで画面が閉じなくなりますよ。

投稿2019/06/26 01:35

YouheiSakurai

総合スコア6142

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問