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

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

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

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

Python

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

Q&A

解決済

2回答

10288閲覧

Pythonで作ったソフトをアイコンで起動したい

kakini

総合スコア40

Python 3.x

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

Python

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

0グッド

1クリップ

投稿2019/11/17 12:01

pythonである日付から現在までの日付の差分を秒数で計算して
それをtkinterを使ってほぼ1秒ずつ表示させるソフトを作りました
メインがこちらで

python

1from tkinter import * 2from time import sleep 3import timer1 4 5 6def write_time(): 7 8 cv.delete("all") 9 10 TD=timer1.timerope() 11 12 cv.create_text(50,10,fill="black",text=TD) 13 14 sleep(1) 15 16 win.after(1,write_time) 17 18win=Tk() 19cv=Canvas(win,width=100,height=20) 20cv.pack() 21win.after(1,write_time()) 22win.mainloop()

メインの中で使ってるモジュールがこちらです

python

1import datetime 2import math 3 4def timerope(): 5 dt1=datetime.datetime(year=2019,month=8,day=1,hour=0) 6 7 dt2=datetime.datetime.now() 8 9 td=dt2-dt1 10 11 TD=math.floor(td.total_seconds()) 12 13 return TD 14

メインのファイル名は「timer」と書いています

このtimerファイルをパソコンのデスクトップに置いてあるようなエクセルやoutlook、グーグルのアイコンみたいに置いているんですがこのファイルを普通のエクセルの様なアイコンみたいにクリックして起動しても
コマンドプロンプトみたいな黒い画面が一瞬表示されて何も起こりません
IDLE?とかいうシェル?を起動してそこからファイルを読み込んでrunさせればきちんと動きますが
そのやり方でなくデスクトップでアイコンをクリックした瞬間起動させるにはどうしたらいいんでしょうか?

後、一応自分がしたいと思ってるのはパソコンの電源をonにした時、最初何もしなくても自動的に↑のソフトが起動して画面に表示させるようにしたいと考えています
これに関しては「スタートアップ」フォルダにアイコンのショートカットを入れておけば最初起動してくれるらしいですが
仮にこのやり方でやった場合ちゃんと起動しますか?

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/17 12:15

使用しているOSは何でしょうか?
kakini

2019/11/17 12:22

申し訳ありません、書き忘れてました。 OSはwindows7 pro 64ビット pythonのバージョンは3.6.1です
guest

回答2

0

ベストアンサー

おそらく正しく動作しないのは、「メインの中で使っているモジュール」がimportできないためと思います。
importのシステムを正しく理解して適切な処理をするのが望ましいですが、結構難しいと思いますので、手っ取り早く対処するのであれば、

  • 「メインの中で使っているモジュール」をメインに入れて、一つのスクリプトファイルにする。
  • デスクトップのショートカットのプロパティの、「作業フォルダ」にメインのスクリプトがおいてあるフォルダを指定する。

のどちらかで解決できると思います。

なお、おそらくそれでも「コマンドプロンプトみたいな黒い画面」が表示されると思いますが、その場合は拡張子を「.pyw」にしてください。


追記:
もうしわけない、ちょっと勘違いしていたようです。

メインである「timer.py」をデスクトップに置いている、という事でよろしいですか。
であれば確認ですが、もう一方のスクリプト(「timer1.py」かな)もデスクトップに置いてますか?
置いてなければ、やっぱりimportのエラーが起きるはずです。

投稿2019/11/17 13:22

編集2019/11/17 13:51
katsuko

総合スコア3469

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

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

kakini

2019/11/17 14:25

ご指摘ありがとうございます。 timer1の方はデスクトップに置いていなかったので、置いたらきちんと表示されるようになりました。 あわせて、スタートアップの方にショートカットも置いたら こちらの望み通りに動いてくれたので完成です。 ありがとうございました
guest

0

Windowsで行う場合は、コンパイルできる言語でコマンドプロンプトを非表示にして
対象のコードを実行するようにします。
※ バッチではコマンドプロンプトを非表示にして実行できません。VBScriptではできるらしいです。
※ 以下のコードはイメージです。動作確認はしていません。

C#

1using System.Diagnostics; 2 3namespace Sample 4{ 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 ProcessStartInfo psInfo = new ProcessStartInfo(); 10 psInfo.FileName = "cmd.exe"; 11 psInfo.Arguments = "/c python sample.py"; 12 psInfo.WindowStyle = ProcessWindowStyle.Hidden; 13 Process.Start(psInfo); 14 } 15 } 16} 17

もしくは、Pythonスクリプトをexeにする方法があるらしいのでそちらで可能かもしれません。

参考:
PythonスクリプトをWindows環境で動くexeファイルにしよう!
pythonアプリの単一実行ファイル(app,exe化)を作って配布する方法

投稿2019/11/17 12:33

編集2019/11/17 12:44
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kakini

2019/11/17 14:23

書いて頂いたスクリプトはちょっとまだ理解出来ない物が多かったのですが 外部リンクの方で試したら出来ました。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問