2016年02月21日
pythonでexeファイルを作ろう
高級言語。
実行速度は遅いが同じ内容を少ないコードで実現できる。
流行りのRubyとPythonのどちらにしようか悩んだ。
芸能人でRubyの女神の池澤あやかを見習ってRubyにしようかとも思ったが、
自分はエンジニア。豊富な科学技術計算ライブラリをもつPythonの魅力は捨てがたい。
車輪の再発明は避けなければならない。
Pythonをインストールすることにした。
何も考えず一端は(2/21現在)最新版のPython3.5.1をインストールしたが
3.5は対応していないモジュールが多いので、アンインストールして
Python3.4.4をインストールした。
((2/21現在)3.5はexeファイルを作る方法がない。
HCpy-Standalone-Bというソフトでできるようだが、
ダウンロードしようとしたらWindows Defenderによるウイルスチェックではじかれた。)
exeファイルにできないと、PythonをインストールしているこのSurface Pro以外で使えない。
もし有用なプログラムを書いたら、仕事でも使いたい。
そのためにvisual studio 2015を使うのをあきらめたのだから。
ということで下記のサイトを参考にインストール完了。
>windows環境へのpythonインストール
>http://qiita.com/maisuto/items/404e5803372a44419d60
Python2.xでexeファイルを作成する場合はpy2exeというモジュールで
簡単にexeファイルが作れたらしい。
Python3.x系統ではcx_freezeというモジュールを使うようなので
下記のサイトからダウンロード。→インストール
>Python Software Foundation cx_Freeze 4.3.4
>https://pypi.python.org/pypi/cx_Freeze/4.3.4
さあ、初めてのコードを書こう。
テキストエディタに下記のコードを記載し、「test.py」として保存。
「HelloWorld」と書かれたtext01.txtというファイルを出力するコードだ。
pythonは高級言語だけあって、変数の型を宣言する必要はない。
a = 'Hello '
b = 'World'
c = a + b
fout = open('text01.txt', 'wt')
fout.write(c)
fout.close()
これをコマンドプロンプトからcdコマンドでtest.pyのあるフォルダに移動して
python test.py
というコマンドを実行すれば
テキストファイルが隣に出力される。
せっかくだから今まで覚えたBATファイルの知識を使ってみる。
テキストエディタに下記のように記載し、「testpy.bat」という名前で保存する。
@rem エコーを出力しない
@echo off
rem BATのあるフォルダに移動し.pyファイルを実行するBAT
rem 現在のフォルダに移動
cd /d %~dp0
python test.py
pause
exit
BATファイルのあるフォルダからの相対パスにしたい場合は
「python test.py」部分を
「python test1\test.pyとすれば、test1フォルダ内のtest.pyを実行する。
(pauseは必要に応じてremでコメントしてもよい)
テキストファイルへの入出力は下記のサイトを参考にした。
>今さらPython3 (49) - テキストファイル入出力
>http://deutschina.hatenablog.com/entry/2016/01/26/013000
※後日、test.pyをダブルクリックするとコマンドプロンプトを介さなくても
実行されることに気付く。。。。Batファイル要らないね。
さて、次にexeファイルの作成だが、
テキストエディタで下記のように記載し、「setup.py」という名前でtest.pyと同じフォルダに保存。
import sys
from cx_Freeze import setup, Executable
includes = []
base = None
if sys.platform == "win64":
base = "Win64GUI"
setup( name = "",
version = "",
options = {"build_exe": {"includes": includes}},
executables = [Executable("test.py", base=base)])
setup.pyの作成方法については
下記のサイトを参考にした。
>みーのぺーじ Pythonをcx_Freezeでexeにする (windows編)
>http://pc.atsuhiro-me.net/entry/2013/01/21/000000_1
で、上記サイトは32bit版で記載しているが
自分はSurface proで64bit版のpythonをインストールしているので
5行目から6行目は
「if sys.platform == "win64":
base = "Win64GUI"」とした。
あと、上記サイトではPyQtというQUIに使うモデュールを取り込んでいるが、
自分の数行のコードは特に取り込む必要のあるモデュールもないので
「include」部分は空欄として「 includes = [] 」とした。
で、コマンドプロンプトからcdコマンドで
test.py、setup.pyと同じフォルダに移動し、
python setup.py buildというコマンドを実行すれば、buildフォルダができあがる。
中にはきちんとexeファイルができており、
実行すれば「HelloWorld」と書かれたテキストファイルがexeファイルの隣に出力される。
上記も面倒なのでBATファイルを作ってしまうと、
テキストエディタで下記のコードを記載し、「setup.bat」として
test.py、setup.pyと同じフォルダに放り込む。
@rem エコーを出力しない
@echo off
rem BATのあるフォルダに移動し.pyファイルを実行するBAT
rem 現在のフォルダに移動
cd /d %~dp0
python setup.py build
pause
exit
BATファイルを実行すれば、同じ場所にbuildフォルダができあがるという訳。
これでpythonのプログラミングが始められるようになった。
よしよし。
目標としては、「pywinauto」という機能で、
windowsを自在に操ること。
それまで地道に勉強しよう。
実行速度は遅いが同じ内容を少ないコードで実現できる。
流行りのRubyとPythonのどちらにしようか悩んだ。
芸能人でRubyの女神の池澤あやかを見習ってRubyにしようかとも思ったが、
自分はエンジニア。豊富な科学技術計算ライブラリをもつPythonの魅力は捨てがたい。
車輪の再発明は避けなければならない。
Pythonをインストールすることにした。
何も考えず一端は(2/21現在)最新版のPython3.5.1をインストールしたが
3.5は対応していないモジュールが多いので、アンインストールして
Python3.4.4をインストールした。
((2/21現在)3.5はexeファイルを作る方法がない。
HCpy-Standalone-Bというソフトでできるようだが、
ダウンロードしようとしたらWindows Defenderによるウイルスチェックではじかれた。)
exeファイルにできないと、PythonをインストールしているこのSurface Pro以外で使えない。
もし有用なプログラムを書いたら、仕事でも使いたい。
そのためにvisual studio 2015を使うのをあきらめたのだから。
ということで下記のサイトを参考にインストール完了。
>windows環境へのpythonインストール
>http://qiita.com/maisuto/items/404e5803372a44419d60
Python2.xでexeファイルを作成する場合はpy2exeというモジュールで
簡単にexeファイルが作れたらしい。
Python3.x系統ではcx_freezeというモジュールを使うようなので
下記のサイトからダウンロード。→インストール
>Python Software Foundation cx_Freeze 4.3.4
>https://pypi.python.org/pypi/cx_Freeze/4.3.4
さあ、初めてのコードを書こう。
テキストエディタに下記のコードを記載し、「test.py」として保存。
「HelloWorld」と書かれたtext01.txtというファイルを出力するコードだ。
pythonは高級言語だけあって、変数の型を宣言する必要はない。
a = 'Hello '
b = 'World'
c = a + b
fout = open('text01.txt', 'wt')
fout.write(c)
fout.close()
これをコマンドプロンプトからcdコマンドでtest.pyのあるフォルダに移動して
python test.py
というコマンドを実行すれば
テキストファイルが隣に出力される。
せっかくだから今まで覚えたBATファイルの知識を使ってみる。
テキストエディタに下記のように記載し、「testpy.bat」という名前で保存する。
@rem エコーを出力しない
@echo off
rem BATのあるフォルダに移動し.pyファイルを実行するBAT
rem 現在のフォルダに移動
cd /d %~dp0
python test.py
pause
exit
BATファイルのあるフォルダからの相対パスにしたい場合は
「python test.py」部分を
「python test1\test.pyとすれば、test1フォルダ内のtest.pyを実行する。
(pauseは必要に応じてremでコメントしてもよい)
テキストファイルへの入出力は下記のサイトを参考にした。
>今さらPython3 (49) - テキストファイル入出力
>http://deutschina.hatenablog.com/entry/2016/01/26/013000
※後日、test.pyをダブルクリックするとコマンドプロンプトを介さなくても
実行されることに気付く。。。。Batファイル要らないね。
さて、次にexeファイルの作成だが、
テキストエディタで下記のように記載し、「setup.py」という名前でtest.pyと同じフォルダに保存。
import sys
from cx_Freeze import setup, Executable
includes = []
base = None
if sys.platform == "win64":
base = "Win64GUI"
setup( name = "",
version = "",
options = {"build_exe": {"includes": includes}},
executables = [Executable("test.py", base=base)])
setup.pyの作成方法については
下記のサイトを参考にした。
>みーのぺーじ Pythonをcx_Freezeでexeにする (windows編)
>http://pc.atsuhiro-me.net/entry/2013/01/21/000000_1
で、上記サイトは32bit版で記載しているが
自分はSurface proで64bit版のpythonをインストールしているので
5行目から6行目は
「if sys.platform == "win64":
base = "Win64GUI"」とした。
あと、上記サイトではPyQtというQUIに使うモデュールを取り込んでいるが、
自分の数行のコードは特に取り込む必要のあるモデュールもないので
「include」部分は空欄として「 includes = [] 」とした。
で、コマンドプロンプトからcdコマンドで
test.py、setup.pyと同じフォルダに移動し、
python setup.py buildというコマンドを実行すれば、buildフォルダができあがる。
中にはきちんとexeファイルができており、
実行すれば「HelloWorld」と書かれたテキストファイルがexeファイルの隣に出力される。
上記も面倒なのでBATファイルを作ってしまうと、
テキストエディタで下記のコードを記載し、「setup.bat」として
test.py、setup.pyと同じフォルダに放り込む。
@rem エコーを出力しない
@echo off
rem BATのあるフォルダに移動し.pyファイルを実行するBAT
rem 現在のフォルダに移動
cd /d %~dp0
python setup.py build
pause
exit
BATファイルを実行すれば、同じ場所にbuildフォルダができあがるという訳。
これでpythonのプログラミングが始められるようになった。
よしよし。
目標としては、「pywinauto」という機能で、
windowsを自在に操ること。
それまで地道に勉強しよう。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/4761432
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック