From bd1b7da868b8cb29b371a46d92025594fb63c104 Mon Sep 17 00:00:00 2001 From: Holger Nahrstaedt <holger@nahrstaedt.de> Date: Fri, 4 May 2018 21:43:27 +0200 Subject: [PATCH] Try to build exe with pyinstaller --- .gitignore | 1 - appveyor.yml | 6 +++--- beempy-onedir.spec | 48 +++++++++++++++++++++++++++++++++++++++++++++ beempy.ico | Bin 0 -> 17726 bytes beempy.spec | 40 +++++++++++++++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 beempy-onedir.spec create mode 100644 beempy.ico create mode 100644 beempy.spec diff --git a/.gitignore b/.gitignore index 21607aa5..41fdc26b 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,6 @@ var/ # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest -*.spec # Installer logs pip-log.txt diff --git a/appveyor.yml b/appveyor.yml index c2a76ae8..f2dc2623 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -44,7 +44,7 @@ install: - conda info -a - conda install --yes conda-build setuptools pip pytest-pylint parameterized cryptography - conda install --yes pycryptodomex scrypt pyyaml pytest pytest-mock coverage mock appdirs - - conda install --yes ecdsa requests future websocket-client pytz six Click events prettytable + - conda install --yes ecdsa requests future websocket-client pytz six Click events prettytable pyinstaller # Upgrade to the latest version of pip to avoid it displaying warnings @@ -65,8 +65,8 @@ test_script: after_test: # If tests are successful, create binary packages for the project. - - "pip install wheel" - - "python setup.py bdist_wheel" + - pyinstaller beempy-onedir.spec + - 7z a beempy.zip %APPVEYOR_BUILD_FOLDER%\dist\beempy #- "%CMD_IN_ENV% python setup.py bdist_wininst" #- "%CMD_IN_ENV% python setup.py bdist_msi" - ps: "ls dist" diff --git a/beempy-onedir.spec b/beempy-onedir.spec new file mode 100644 index 00000000..c1be18ef --- /dev/null +++ b/beempy-onedir.spec @@ -0,0 +1,48 @@ +# -*- mode: python -*- + +import os +import glob +import platform + + +block_cipher = None +os_name = platform.system() +binaries = [] + +data_files = [] + + +a = Analysis(['beem/cli.py'], + pathex=['beem'], + binaries=binaries, + datas=data_files, + hiddenimports=[], + hookspath=[], + runtime_hooks=[], + excludes=['matplotlib', 'scipy', 'pandas', 'numpy', 'PyQt5', 'tkinter'], + 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, + exclude_binaries=True, + name='beempy', + debug=False, + strip=False, + upx=False, + console=True, + icon='beempy.ico', +) +coll = COLLECT( + exe, + a.binaries, + a.zipfiles, + a.datas, + name='beempy', + strip=False, + upx=False +) \ No newline at end of file diff --git a/beempy.ico b/beempy.ico new file mode 100644 index 0000000000000000000000000000000000000000..6c0e3ef7175c5fc768dff3432a58dd695acf1a1c GIT binary patch literal 17726 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 aPaaIa>+#7wK6x<p>CX3c2SXJ1>VE)dELLs+ literal 0 HcmV?d00001 diff --git a/beempy.spec b/beempy.spec new file mode 100644 index 00000000..c1d6559e --- /dev/null +++ b/beempy.spec @@ -0,0 +1,40 @@ +# -*- mode: python -*- + +import os +import glob +import platform + + +block_cipher = None +os_name = platform.system() +binaries = [] + +data_files = [] + + +a = Analysis(['beem/cli.py'], + pathex=['beem'], + binaries=binaries, + datas=data_files, + hiddenimports=[], + hookspath=[], + runtime_hooks=[], + excludes=['matplotlib', 'scipy', 'pandas', 'numpy', 'PyQt5', 'tkinter'], + 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='beempy', + debug=False, + strip=False, + upx=False, + runtime_tmpdir=None, + console=True, + icon='beempy.ico', + ) -- GitLab