Support latest py2exe

Fix dll may not load
This commit is contained in:
2024-07-20 16:18:00 +08:00
parent 4ff3b8a414
commit 6290fc1dae
3 changed files with 51 additions and 42 deletions

24
build_exe.py Normal file
View File

@@ -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,
)

View File

@@ -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:

View File

@@ -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"
)