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

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

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

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

Q&A

1回答

3508閲覧

exeファイルを実行してもすぐ消える

August.

総合スコア7

Python

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

0グッド

0クリップ

投稿2021/09/14 01:36

タスクスケジューラからPCの起動したらうごくようなpythonのプログラムがあるのですが、もし誤って閉じてしまった時のために、
そのプログラムをデスクトップからアイコンをダブルクリックで実行できるようにしたいです。

調べたらexeファイルから実行できると書いてありましたのでexeファイルのショートカットをデスクトップ上に作ったのですが、まずフォルダ内のexeファイルもダブルクリックしても一瞬コマンドプロンプトを開いて閉じてしまいます。

なのでもちろんショートカットも動くはずがなく行き詰っております。

タスクスケジューラから実行しているときは実際に動いています。(コマンドプロンプト上では(c:~~~~~main\main,exe)と出ております)

以下がソースコードとなります。

python

1import os 2import time 3import datetime 4from DiskManage import GetDiskUsage 5import CameraCS1200 6import numpy as np 7import cv2 8from PIL import Image, ImageDraw, ImageFont 9 10 11############################## 12# 定数 13############################## 14SRC_FOLDER = None #'/home/unitecubuntu/workspace/FtpImageCopy/TestData/FTP/' 15DST_FOLDER = None #'/home/unitecubuntu/workspace/FtpImageCopy/TestData/Save/' 16g_cs1200 = None 17 18def Initialize(): 19 global g_cs1200 20 # 接続しているカメラを確認 21 # カメラを生成 22 g_cs1200 = CameraCS1200.CameraCS1200() 23 # カメラをオープン 24 g_cs1200.OpenCamera() 25 26 return 27 28############################## 29# メイン処理 30############################## 31def main(): 32#1.SDカード接続チェック 33# 接続できていなかったらPCディスプレイに警告表示 34#2.SDカード容量チェック 35# SDカード容量チェック 36# 容量がオーバーしそうであれば警告をシーケンサーに返す+ 37#  PCディスプレイに警告表示にてお知らせ 38 39#3.PLCとの通信 40# シーケンサーから信号 41#4.画像撮影 42# 写真撮影 3枚 43# 画像の生データを圧縮 44# 号機等の情報に合わせて画像保存 45# 撮影した画像をPCディスプレイに表示 46 47 global g_cs1200 48 49 # カメラからのキャプチャースレッド開始 50 g_cs1200.GrabImage() 51 52 53 while True: 54 #1.SDカード接続チェック 55 # 接続できていなかったらPCディスプレイに警告表示 56 #2.SDカード容量チェック 57 # SDカード容量チェック 58 # 容量がオーバーしそうであれば警告をシーケンサーに返す+ 59 #  PCディスプレイに警告表示にてお知らせ 60 61 #3.PLCとの通信 62 # シーケンサーから信号 63 #4.画像撮影 64 # 写真撮影 3枚 65 # 画像の生データを圧縮 66 # 号機等の情報に合わせて画像保存 67 # 撮影した画像をPCディスプレイに表示 68 69 # キャプチャーした画像を表示 70 g_cs1200.DisplayImage() 71 72 73 # シーケンサーからのトリガーが来たら写真を撮影 74 75 # Qキーが押されたら終了フラグを立てて終了させる。 76 key = g_cs1200.GetKey() 77 if key == ord('q'): 78 g_cs1200.ExitGrabImage() 79 g_cs1200.CloseCamera() 80 g_cs1200.DestroyWindow() 81 break 82 # Sキーを押したら画像保存 83 # e 84 if key == ord( 's' ): 85 g_cs1200.PutText( str('01234567-20210907-121200'), (100,200), (0,0,0,255), '' ) 86 # 一度ファイルに保存する。 87 g_cs1200.SaveImage( 'test.jpg' ) 88 # ファイルに保存したデータを読込リネームと文字書込を行う。 89 #TextDraw_PutText( str('test.jpg'), str('01234567-20210907-121200'), ( 200, 100 ), (0,0,0,255) ) 90 #cv2.imwrite( 'test.jpg', cv2.cvtColor(image, getattr(cv2, conversion)) ) 91 #cv2.imshow("撮影画像", cv2.cvtColor(image, getattr(cv2, conversion))) 92 # continue 93 94 ret = GetDiskUsage( "c:\workspace" ) 95 print( ret ) 96 97 98 99 100 # 独自関数で日本語テキストを描写する 101# text = "日本語も\n可能なり" 102# x, y = 200,100 103# fontPIL = "YUGOTHB.TTC" # DF麗雅宋 104# size = 40 105# colorBGR = (255,0,0) # cv2.putText()と同じく、BGRの順で定義 106# img,ret = g_cs1200.cv2_putText_1( text = text, 107# org = ( x, y ), 108# fontFace = fontPIL, 109# fontScale = size, 110# color = colorBGR ) 111# if ret == True: 112# cvw.imshow( 'font_test', img ) 113 114 # if g_cs1200.image != None: 115 # img = cv2_putText_1(img = g_cs1200.image, 116 # text = text, 117 # org = (x,y), 118 # fontFace = fontPIL,5 119 # fontScale = size, 120 # color = colorBGR) 121 # cv2.imshow( "test", img ) 122 123 # 1秒待つ 124# time.sleep( 1 ) 125 return True 126 127 128def TextDraw_PutText( path, text, pos, color ): 129 x, y = 200, 100 130 font = ImageFont.truetype( "BIZ-UDGothicR.ttc", 60 ) 131# font = ImageFont.truetype( "YUGOTHB.TTC", 30 ) # DF麗雅宋s 132 img = Image.open( path ) 133 imdraw = ImageDraw.Draw( img ) 134 135 imdraw.text( pos, text, font = font, fill = color ) 136 137 img.save( 'test2.jpg', quality=100 ) 138 139 140 141 142 143 144if __name__ == "__main__": 145 import sys 146 147 print( sys.path ) 148 Initialize() 149 150# while True: 151 try: 152 main() 153 except: 154 print( '例外が発生しました。', sys.exc_info()[0] ) 155 print( sys.exc_info()[1] ) 156 import traceback 157 print( traceback.format_tb( sys.exc_info()[2] ) ) 158 159 last_filepath = None 160 161 g_cs1200.ExitGrabImage() 162 g_cs1200.CloseCamera() 163

最後の行にinput()を入れてみたりもしましたがやはり結果は変わらずでした。。。

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

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

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

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

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

Daregada

2021/09/14 01:57

まず、「フォルダ内のexeファイル」はどうやって作ったのですか?
guest

回答1

0

まずコマンドプロンプトを開いておいて、そこから実行してみてはどうでしょう

投稿2021/09/14 01:48

y_waiwai

総合スコア87749

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問