回答編集履歴

2

「GUIプログラム」を「コンソール無しプログラム」に書き換え。同じものですが

2024/05/25 14:46

投稿

otn
otn

スコア85507

test CHANGED
@@ -1,8 +1,8 @@
1
- 「コンソールプログラムであれば、問題なくデバッグできるのに、GUIだとそれが難しい」
1
+ 「コンソールプログラムであれば、問題なくデバッグできるのに、コンソール無し(GUIアプリ)だとそれが難しい」
2
2
  というのが問題ポイントであれば、開発中または障害が起こってのデバッグの際は`--noconsole`を付けずにコンソールプログラムとして作るというのが簡単な方法です。
3
3
  ただし、
4
4
  ・本番稼働中に起こった障害が再現せず、本番稼働中にも記録を残しておきたかった
5
- GUIプログラムだと障害を再現できるが、コンソールプログラムにすると再現しない
5
+ コンソール無しプログラムだと障害を再現できるが、コンソールプログラムにすると再現しない
6
6
  という場合は駄目ですが。
7
7
 
8
8
  また、標準出力、標準エラー出力が失われることが問題であれば、プログラム冒頭で、
@@ -17,8 +17,8 @@
17
17
 
18
18
  > 今回 %errorlevel%が 0で戻ってきている理由だけ明確にすればよい??
19
19
 
20
- GUIプログラムをコマンドプロンプトやPowershellコンソールで起動しても、すぐにプロンプトが返ってくるので、そこで`ERRORLEVEL`を表示させても今実際に動き続けているプログラムとは無関係に1つ前の値が返ります。
20
+ GUIプログラム/コンソール無しプログラムをコマンドプロンプトやPowershellコンソールで起動しても、すぐにプロンプトが返ってくるので、そこで`ERRORLEVEL`を表示させても今実際に動き続けているプログラムとは無関係に1つ前の値が返ります。
21
- (すべてのGUIプログラムがそうなのかは未確認。pyinstallerでつくったGUIプログラムも未確認
21
+ (すべてのGUIプログラム/コンソール無しプログラムがそうなのかは未確認)
22
22
  コマンドプロンプトでキーインしての実行例:
23
23
  ```CMD
24
24
  Z:\TEMP>python -c "import sys;sys.exit(123)"
@@ -31,7 +31,7 @@
31
31
  Z:\TEMP>
32
32
  ```
33
33
 
34
- 下記のようなバッチファイルを作れば30秒後に 0 が表示されますので、GUIプログラムの`ERRORLEVEL`を見たい時はバッチにすると良いでしょう。
34
+ 下記のようなバッチファイルを作れば30秒後に 0 が表示されますので、コンソール無しプログラムの`ERRORLEVEL`を見たい時はバッチにすると良いでしょう。
35
35
  ```CMD
36
36
  python -c "import sys;sys.exit(123)"
37
37
  echo %ERRORLEVEL%

1

補足追記

2024/05/25 14:31

投稿

otn
otn

スコア85507

test CHANGED
@@ -18,7 +18,7 @@
18
18
  > 今回 %errorlevel%が 0で戻ってきている理由だけ明確にすればよい??
19
19
 
20
20
  GUIプログラムをコマンドプロンプトやPowershellコンソールで起動しても、すぐにプロンプトが返ってくるので、そこで`ERRORLEVEL`を表示させても今実際に動き続けているプログラムとは無関係に1つ前の値が返ります。
21
- (すべてのGUIプログラムがそうなのかは未確認)
21
+ (すべてのGUIプログラムがそうなのかは未確認。pyinstallerでつくったGUIプログラムも未確認
22
22
  コマンドプロンプトでキーインしての実行例:
23
23
  ```CMD
24
24
  Z:\TEMP>python -c "import sys;sys.exit(123)"
@@ -31,7 +31,7 @@
31
31
  Z:\TEMP>
32
32
  ```
33
33
 
34
- 下記のようなバッチファイルを作れば30秒後に 0 が表示されます。
34
+ 下記のようなバッチファイルを作れば30秒後に 0 が表示されますので、GUIプログラムの`ERRORLEVEL`を見たい時はバッチにすると良いでしょう
35
35
  ```CMD
36
36
  python -c "import sys;sys.exit(123)"
37
37
  echo %ERRORLEVEL%