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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

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

Q&A

解決済

4回答

3825閲覧

タスクスケジューラからPython test.pywが実行されない

sofia

総合スコア14

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

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

0グッド

0クリップ

投稿2021/07/05 10:10

前提・実現したいこと

タスクスケジューラで実行したいファイル(例:test.pyw)が実行できないので、原因を調べる方法が知りたい

発生している問題・試したこと

・タスクスケジューラから実行したいファイル(例:test.pyw)が実行できない
・test.pywをダブルクリックで実行する分には普通に実行される
・タスク実行後、タスクスケジューラの履歴では正常に実行されているときと変わらない表示だった
・タスク実行後、前回の実行結果は「この操作を正しく終了しました(0×0)」となっていた
・タスクスケジューラの設定から別のTEST2.pyw(tkinterでウィンドウを表示するファイル)に差し替えたところ、これはタスクスケジューラからでも起動した

→なので、実行したいtest.pywに、なにかエラーがある?と思うのですが、何が原因かわからないです

######気になること
実行時の動作には何も問題はないのですが、vscodeでファイルを実行すると、下のコンソール?に以下の文字が現れます

ちなみに、not defined となっている pyimg/fav.ico ですが、実行時普通に表示されます

Traceback (most recent call last): File "c:\Users\ユーザー名\Desktop\test .pyw", line 113, in <module> root.iconbitmap(default=iconfile) File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 2078, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, '-default', default) _tkinter.TclError: bitmap "pyimg/fav.ico" not defined

タスクスケジューラ

何が原因か、知りたいです
調べる方法はありますか?

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

win10
vscode

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

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

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

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

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

guest

回答4

0

ログを取ってみましょう。
プログラム/スクリプトはcmd
引数は/c pythonw test.pyw > C:\your\log\folder\log.txt 2>&1

(追記)
pythonwじゃなくpythonじゃないとダメかも

投稿2021/07/05 11:14

編集2021/07/05 11:42
itagagaki

総合スコア8402

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

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

sofia

2021/07/05 11:55

タスク実行後ログファイルを探してみましたが、なかったです C:\自分のユーザ名\log\folder\log.txt 引数の後ろの方を、↑に書き換えて実行したのですが、logというフォルダ自体なかったです タスク起動時、一瞬黒い画面が表示されましたがすぐに消え、tkinterのウィンドウは表示されませんでした
itagagaki

2021/07/05 12:31

あ、ログのパスは自分の好きな場所で大丈夫です
guest

0

そのfav.icoってのをフルパスで指定してみては。

投稿2021/07/05 10:13

y_waiwai

総合スコア88042

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

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

sofia

2021/07/05 10:19

フルパスというのは、iconfile = 'C:\Users\ユーザ名\Desktop\pyimg\pyimg/fav.ico' というのであっているでしょうか? やってみたのですが、ダブルクリックでの起動すらできなくなってしまいました
y_waiwai

2021/07/05 10:24

そのフルパスが間違ってるのでは エラーメッセージの pyimg/fav.ico ってのは、カレントディレクトリを基準としての場所指定となってるので、実行場所を移動してしまったらエラーになります なので、そこんところをフルパスで指定してやればいい、はずなんですが
sofia

2021/07/05 10:42

カレントディレクトリ = test.pywファイルの保存場所 で合っていますよね?(違いますでしょうか?) test.pywの保存場所はデスクトップで、デスクトップの中にpyimgフォルダがあって、その中にfav.icoがある状態なのですが、どういうふうにかけばいいでしょうか? test.pywをデスクトップ上でダブルクリックすると、起動して、fav.icoも正常に表示されているのですが、パスが間違ってるということですよね?
y_waiwai

2021/07/05 11:11

カレントディレクトリがデスクトップの場合でしか正常に起動しないってことですね タスクスケジューラ起動したときのカレントディレクトリはどこか調べてみては。
y_waiwai

2021/07/05 11:12

って、それがほんまならフルパス間違ってますがな
sofia

2021/07/05 11:29

この記事(https://note.nkmk.me/python-os-getcwd-chdir/)を参考に、 ============ import os path = os.getcwd() print(path) print(type(path)) ============= を 追加したところ、 ================ Traceback (most recent call last): File "c:\Users\ユーザ名\Desktop\test.pyw", line 122, in <module> root.iconbitmap(default=iconfile) File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 2078, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, '-default', default) _tkinter.TclError: bitmap "pyimg/fav.ico" not defined PS C:\Users\ユーザ名> ================= と表示されました パスが間違っていても、test.pyw起動時のウィンドウに画像が表示されるものなのでしょうか? フルパスでの指定の書き方がよくわかりません… エラーの読み方もわからないのですが、参考になるページ等ありますか?
guest

0

自己解決

コードを別名ファイルにコピペしてタスクスケジューラから起動したら起動できたので、元ファイルを削除して、別名ファイルをつけたかった名前に変更し、タスクスケジューラも設定しなおしたら無事動きました
原因は何だったのかよくわかりませんが…

ヒントをくださったお二方、ありがとうございました
カレントディレクトリやパス、ログの取り方等、大変勉強になりました

投稿2021/07/05 23:29

sofia

総合スコア14

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

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

0

タスクの「開始(オプション)」の設定が無いか誤っているのでは。
名前が奇妙ですが作業ディレクトリ(カレントディレクトリ)の設定です。

投稿2021/07/05 10:16

itagagaki

総合スコア8402

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

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

sofia

2021/07/05 10:55

タスクの「開始(オプション)」 = test.pywの保存場所(カレントディレクトリ) であっていますでしょうか? test.pywの保存場所は、デスクトップで、開始(オプション)は、 C:\Users\ユーザ名\Desktop にしてあります プログラム/スクリプト(P): pythonw.exeの場所 引数の追加(オプション)(A): test.pyw(実行したいファイル) 開始(オプション)(T): test.pywが保存されているデスクトップ で設定してあります ここの引数のオプションで、別のa.pywを指定して、デスクトップにa.pywを指定してやると、a.pywはタスクスケジューラからでも実行できます (a.pywはtkinterウィンドウのみ表示するサンプルスクリプト) これを、自分の書いたtest.pyw(別のスクリプト)を同じように実行するとできないので困っているところなのです… わかりづらくてすみません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問