diff --git a/build_exe.py b/build_exe.py new file mode 100644 index 0000000..37813b1 --- /dev/null +++ b/build_exe.py @@ -0,0 +1,24 @@ +from version import version, dversion +from py2exe import freeze + +freeze( + console=[{ + 'script': "game_backuper/__main__.py", + "dest_base": 'game-backuper', + 'version_info': { + 'version': version, + 'product_name': 'game-backuper', + 'product_version': dversion, + 'company_name': 'lifegpc', + 'description': 'A game backuper', + 'copyright': 'Copyright (C) 2021-2024 lifegpc' + }, + }], + options={ + "optimize": 2, + "compressed": 1, + "excludes": ["doctest", "pydoc", "unittest"], + "includes": ["cryptography.utils", "_cffi_backend", "sqlite3.dump"] + }, + zipfile=None, +) diff --git a/game_backuper/__init__.py b/game_backuper/__init__.py index 4fe219e..8d2b8f9 100644 --- a/game_backuper/__init__.py +++ b/game_backuper/__init__.py @@ -1,9 +1,22 @@ __version__ = "1.0.0" +import sys +from platform import system +if system() == 'Windows' and sys.version_info.minor > 7: + from os import add_dll_directory, environ, getcwd + from os.path import dirname, isdir + add_dll_directory(dirname(sys.executable)) + add_dll_directory(getcwd()) + for i in environ['PATH'].split(";"): + add_dll_directory(i) + for i in sys.path: + if isdir(i): + add_dll_directory(i) + + from game_backuper.main import main def start(): - import sys try: sys.exit(main()) except Exception: diff --git a/setup.py b/setup.py index 557da11..4e497dc 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # flake8: noqa import sys -from version import version, dversion -from setuptools import Extension +from version import version +from setuptools import setup, Extension try: from Cython.Build import cythonize except ImportError: @@ -18,44 +18,6 @@ if '--without-zstd' in sys.argv: else: ext_modules.append(Extension("game_backuper._zstd", ["game_backuper/_zstd.pyx"], libraries=["zstd"])) -if "py2exe" in sys.argv: - from distutils.core import setup - import py2exe - params = { - "console": [{ - 'script': "game_backuper/__main__.py", - "dest_base": 'game-backuper', - 'version': version, - 'product_name': 'game-backuper', - 'product_version': dversion, - 'company_name': 'lifegpc', - 'description': 'A game backuper', - }], - "options": { - "py2exe": { - "optimize": 2, - "compressed": 1, - "excludes": ["pydoc", "unittest"], - "includes": ["cryptography.utils", "_cffi_backend", "sqlite3.dump"] - } - }, - "zipfile": None, - } -else: - from setuptools import setup - params = { - "install_requires": ["pyyaml"], - 'entry_points': { - 'console_scripts': ['game-backuper = game_backuper:start'] - }, - "extras_require": { - "leveldb": "plyvel", - "lzip": "lzip", - "snappy": "python-snappy", - "brotli": "brotli", - }, - "python_requires": ">=3.6" - } setup( name="game-backuper", version=version, @@ -72,5 +34,15 @@ setup( keywords="backup", packages=["game_backuper"], ext_modules=cythonize(ext_modules, compiler_directives={'language_level': "3"}), - **params + install_requires=["pyyaml"], + entry_points={ + 'console_scripts': ['game-backuper = game_backuper:start'] + }, + extras_require={ + "leveldb": "plyvel", + "lzip": "lzip", + "snappy": "python-snappy", + "brotli": "brotli", + }, + python_requires=">=3.6" )