PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法
はじめに
何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。
そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。
CX_Freezeのインストール
まず、コマンドプロンプトで以下のコマンドを実行し、cx_Freezeモジュールをインストールします。
pip install cx_Freeze
サンプルプログラムの作成
今回は例として、python.comのWebページを解析して検索結果を表示するPythonプログラムを変換してみます。標準ライブラリのurllibとreモジュールを使用します。
import urllib.request
import urllib.parse
import re
import time
my_url = 'https://www.python.com/'
my_values = {'s': 'basics',
'submit': 'search'}
my_data = urllib.parse.urlencode(my_values)
my_data = my_data.encode('utf-8')
my_req = urllib.request.Request(my_url, my_data)
my_resp = urllib.request.urlopen(my_req)
my_respData = my_resp.read()
my_paragraphs = re.findall(r'<p>(.*?)</p>', str(my_respData))
for p in my_paragraphs:
print(p)
time.sleep(20)
最後に20秒間のスリープ(time.sleep(20))を入れています。これは、プログラム終了前にコンソールの出力結果を確認できるようにするためです。
このプログラムを「pythonCX_Freeze.py」というファイル名で保存します。
setup.pyファイルの作成
次に、ビルド用のセットアップファイル「setup.py」を作成します。
from cx_Freeze import setup, Executable
setup(name="pythonCX_Freeze",
version="0.1",
description="",
executables=[Executable("pythonCX_Freeze.py")])
このファイルでは、cx_FreezeからsetupとExecutableをインポートしています。続けて、4つのパラメータを指定してsetup()関数を呼び出します。
- name:実行ファイルとして作成するプログラムの名前
- version:プログラムに付けるバージョン番号
- description:必要に応じて説明文を記述し、不要であれば空欄のままにします
- executables:変換対象のスクリプト名を引数としてExecutable()に渡します
ビルドの実行
コマンドプロンプト(cmd.exe)を開き、setup.pyとスクリプトが配置されているディレクトリへ移動します。
そして、以下のコマンドを実行します。
python setup.py build
コマンド実行後、「build」ディレクトリが生成され、その中のさらに下層のディレクトリ内に実行ファイルが作成されます。すべての手順が正しく完了していれば、実行時にpython.comの検索フォームから「basics」の検索結果を取得・解析し、20秒間結果を表示してから自動的に終了します。
-
Pythonで理解する畳み込みニューラルネットワーク(CNN)の基礎とSobelフィルタによるエッジ検出
画像認識はかつて、線形回帰や類似度の比較といった、より単純な手法によって行われていました。その結果は決して良いものではなく、手書き文字のアルファベットを認識するという単純なタスクさえ困難でした。畳み込みニューラルネットワーク(CNN)は、人間が画像を知覚する際の脳の神経活動を緩やかに模倣する、計算コストの低い手法を提供することで、従来のアプローチから一歩進んだ存在となっています。畳み込みニューラルネットワーク(CNN)の概要人間がさまざまな物体を認識できるようになる過程と非常に似ていて、コンピュータのアルゴリズムも、入力を汎化し、初めて見る画像に対して判断を下せるようになるまでに、何百万もの画
-
Pythonで作るWebサイトブロッカー ― 業務時間中にSNSへのアクセスを自動遮断する方法
大手IT企業で働いたことがある方なら、FacebookやYouTube、InstagramといったSNS系のWebサイトが社内からアクセスできないよう制限されていることに気づいた経験があるかもしれません。こうした制限は、サードパーティ製アプリに頼らなくても実現できます。自分専用のオリジナルツールを作れば、好きなWebサイトを自由にブロックできるのです。しかもPythonでWebサイトブロッカーを開発するのは、それほど難しいことではありません。この記事では、指定したWebサイトをブロックするPythonスクリプトの作り方を解説します。前提条件Python 3.x がインストールされていることPy