質問をみていただきましてありがとうございます。
Pythonで作成したWindowsのデスクトップアプリのexe化でつまづいています。
調べてみたのですが、思っている結果にたどり着かず質問させていただきました。
やってみたこと
Visual Studio Codeを使用してPythonのデスクトップアプリケーションを作成してみました。
内容は、SeleniumとChromedriverを使用してサイト検索の簡単化を目指しました。(クックパッド)
取得した内容をまとめて画面に出すという簡単なものです。
各種バージョン
Visual Studio Code 1.34
Python 3.7.4(64bit)
開発PC Windows10 64bit
自宅共用PC Windows10 32bit
Vscodeのcurrent python でもPython 3.7.4(64bit)が選択されています。
# つまづいたところ
Pythonのデバック(F5)では動作はOKで、いざExe化だ!とはりきり
ググってPyinstallでexe化することにしました。
specファイルの中身は次の通りです
setting.spec
1# -*- mode: python ; coding: utf-8 -*- 2 3block_cipher = None 4 5 6a = Analysis(['main.py'], 7 pathex=['D:\TestPythonApp\project'], 8 binaries=[('./chromedriver/chromedriver_win32_80/chromedriver.exe', './TestPythonApp/chromedriver/chromedriver_win32_80'), 9 ('./webview/lib', 'webview/lib'), 10 ('./cefpython3/', '.')], 11 datas=[('./common', './TestPythonApp/common')], 12 hiddenimports=[], 13 hookspath=[], 14 runtime_hooks=[], 15 excludes=[], 16 win_no_prefer_redirects=False, 17 win_private_assemblies=False, 18 cipher=block_cipher, 19 noarchive=False) 20pyz = PYZ(a.pure, a.zipped_data, 21 cipher=block_cipher) 22exe = EXE(pyz, 23 a.scripts, 24 a.binaries, 25 a.zipfiles, 26 a.datas, 27 [], 28 name='TestPythonApp', 29 debug=False, 30 bootloader_ignore_signals=False, 31 strip=False, 32 upx=True, 33 upx_exclude=[], 34 runtime_tmpdir=None, 35 console=False, 36 icon='icon.ico')
この状態でvscodeのターミナルを使用してPyinstaller setthing.spec
を実行すると
しっかりexeが出力されました。
これを、他のX64のPCで実行してみると見事起動。
しかし、いざ自宅の共用PCで起動すると
このPCで実行できませんのエラー。
最初は何が違うのかわからず色々試した結果、
X86 のPCだけ動かないことがわかり調べてみました。
しかし、解決には至らず質問させていただきました。
質問
- 現状でx86用(32bit)用のexeを作成することは可能なのでしょうか?
- できるのであればその方法、できないのであれば、どうやったら可能なのでしょうか?
- 64bitで開発を行っていても32bitと64bit用のexeにする方法が知りたいです。
- 次の開発からこのようにならないようにしたいのですが、何かした方がいいことなどあれば教えていただきたいです。
- py2exeというのが調べていたらでてきたのですが、こちらの方が使い勝手がよかったりするのでしょうか?
わかるかた、ご教示いただきたく思います。
よろしくお願いいたします。
また、不明点や間違い等ございましたらお手数ですが
ご指摘いただけますと幸いです。
追記
32bitのPythonで作成するといいということで、vscodeのcurrent pythonを32bitにして
exe化してみたのですが、動きません。
さらに追記
venv
を使うとできるかもと模索中です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/03 09:41