pythonでGUI
pythonには標準ライブラリのtkinterでGUIアプリが作れます。
これを使った案件があって書いたけれども、exe化するのに手間取ったため、記録を残しておきます。
mp3を入れる
このアプリにはアラート音としてmp3のファイルが入れてあります。
.exeにするのにpyinstallerを使いましたが、特殊なケースでもなければ、これだけで出来ます。(もちろん、tkinter等のGUIで書く必要あります)
pyinstaller test.py --onefile --noconsole
オプションで
--onefile 一つのファイルに
--noconsole コンソールが立ち上がらないように
みたいなのもつけられます。
ただし、それだけだとmp3等のファイルを入れることが出来ません。
test.specファイルのdataの場所に追記します。
# -*- mode: python -*-
block_cipher = None
a = Analysis(['test.py'],
pathex=['/Users/*****/test'],
binaries=[],
datas=[('./mygame/beep.mp3', 'mygame/sfx')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='test',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=False )
app = BUNDLE(exe,
name='test.app',
icon=None,
bundle_identifier=None)
mygame/beep.mp3と入れていたのですが、なんども作ってはパスやらファイルの場所を確認して見るとmygame/sfxの中にbeep.mp3が入っているようでした。なので、第2引数にそのように追記です。これでbeep.mp3も読み込むことが出来ました。
seleniumのwebdriver
私の開発環境はmacなのですが、納品されて使用されるのはwindowsでした。そのため、windowsで改めて動作確認をして見た所、動作しない。。。
エラーを見ると、chromeのpathが云々と書いてあります。
そこで、https://www.inet-solutions.jp/technology/python-selenium/参考にさせて頂いて無事動きました。
macだとこれ↓で動くのですが、
browser = webdriver.Chrome()
windowsだとchromedriverを入れる必要があるのに加え、ファイルの移動、そして↓のように、pathを指定する必要がありました。
browser = webdriver.Chrome("c://chromedriver.exe")
※chromedriver.exeをcドライブ直下に置きました。
これはクライアントにも同じ場所に同じようにchromedriverを入れてもらう必要がありますね。
## 動作確認
改めてpyinstallで.exe化をして完成。
何時間も嵌ってしまいました。。。