99 lines
4.3 KiB
Python
99 lines
4.3 KiB
Python
# setup.py
|
|
import sys, os
|
|
from cx_Freeze import setup, Executable
|
|
from PySide6 import QtCore
|
|
|
|
# 필요한 파일 경로 설정
|
|
base_dir = os.path.dirname(__file__)
|
|
browsers_dir = os.path.join(base_dir, 'src', 'browsers')
|
|
chromium_dir = os.path.join(browsers_dir, 'src', 'browsers', 'chromium-1140')
|
|
whale_dir = os.path.join(browsers_dir, 'src', 'browsers', 'whale')
|
|
extensions_dir = os.path.join(browsers_dir, 'src', 'browsers', 'extensions')
|
|
user_data_dir = os.path.join(browsers_dir, 'src', 'browsers', 'user_data')
|
|
|
|
# include_files = [
|
|
# os.path.abspath('config.ini'),
|
|
# os.path.abspath('prompt.json'),
|
|
# os.path.abspath('userDB.db'),
|
|
# os.path.abspath('HakgyoansimDunggeunmisoTTFB.ttf'),
|
|
# (os.path.abspath('src/initialDB.db'), 'src/initialDB.db'),
|
|
# (os.path.abspath('src/Percenty_SS_Code.json'), 'src/Percenty_SS_Code.json'),
|
|
# (os.path.abspath(chromium_dir), 'browsers/chromium-1140'),
|
|
# (os.path.abspath(whale_dir), 'browsers/whale'),
|
|
# (os.path.abspath(extensions_dir), 'browsers/extensions'),
|
|
# (os.path.abspath(user_data_dir), 'browsers/user_data'),
|
|
# ]
|
|
|
|
# PySide6 DLL 경로 추가
|
|
# pyside6_path = os.path.join(os.path.dirname(sys.executable), "Lib", "site-packages", "PySide6")
|
|
# pyside6_plugins_path = os.path.join(pyside6_path, "plugins")
|
|
# pyside6_bin_path = pyside6_path # 'bin' 폴더가 없으면 기본 경로 사용
|
|
|
|
|
|
include_files = [
|
|
# ("pyu-data", "pyu-data"),
|
|
# ('config.ini', 'config.ini'),
|
|
# ('prompt.json', 'prompt.json'),
|
|
# ('userDB.db', 'userDB.db'),
|
|
('kiprisCategories.json', 'kiprisCategories.json'),
|
|
('src/keyword/kiprisCategories.json', 'lib/src/keyword/kiprisCategories.json'),
|
|
('HakgyoansimDunggeunmisoTTFB.ttf', 'HakgyoansimDunggeunmisoTTFB.ttf'),
|
|
('퍼센티 다양한 카테고리 엑셀 수집(스스 기준).xlsx', '퍼센티 다양한 카테고리 엑셀 수집(스스 기준).xlsx'),
|
|
# ('src/initialDB.db', 'src/initialDB.db'),
|
|
('src/Percenty_SS_Code.json', 'lib/src/Percenty_SS_Code.json'),
|
|
# ('src/initialDB.db', 'lib/src/initialDB.db'),
|
|
('src/Percenty_SS_Code.json', 'lib/src/Percenty_SS_Code.json'),
|
|
# ('src/browsers/chromedriver_128.0.6613.137.exe', 'src/browsers/chromedriver_128.0.6613.137.exe'),
|
|
('src/browsers/chromium-1140', 'lib/src/browsers/chromium-1140'),
|
|
('src/browsers/whale', 'lib/src/browsers/whale'),
|
|
('src/browsers/extensions', 'lib/src/browsers/extensions'),
|
|
('src/browsers/user_data', 'lib/src/browsers/user_data'),
|
|
# (pyside6_bin_path, "PySide6"), # PySide6 DLL 파일 경로
|
|
# (pyside6_plugins_path, "PySide6/plugins"), # plugins 경로 추가
|
|
]
|
|
for src, dest in include_files:
|
|
if not os.path.exists(src):
|
|
print(f"경로가 존재하지 않습니다: {src}")
|
|
|
|
# 사용된 패키지 정의
|
|
build_exe_options = {
|
|
'packages': [
|
|
'ctypes', 'asyncio', 'os', 're', 'time', 'math', 'json', 'logging', 'shutil', 'random', 'base64',
|
|
'subprocess', 'configparser', 'pyperclip', 'numpy', 'cv2', 'requests', 'win32clipboard', 'win32gui',
|
|
'win32con', 'win32process', 'PIL', 'bs4', 'sqlalchemy', 'sqlalchemy.orm', 'PySide6', 'psutil',
|
|
'sqlalchemy.exc', 'collections', 'pandas', 'supabase', 'translatepy', 'comtypes', 'markdown', 'markdown.extensions'
|
|
],
|
|
'includes': [
|
|
'PySide6.QtWidgets', 'PySide6.QtCore', 'PySide6.QtGui', 'shiboken6',
|
|
'whale_translator', 'gui', 'logger_module', 'toggleSwitch',
|
|
'browser_control', 'clipboardImageManager', 'option',
|
|
'price', 'title', 'locatorManager', 'src.cmdDiag', 'src.inputDiag', 'src.keyword',
|
|
'src.priceSetDiag', 'comtypes.stream', 'markdown.extensions.extra', 'markdown.extensions.smarty', 'markdown.extensions.fenced_code', 'markdown.extensions.codehilite'
|
|
],
|
|
'include_files': include_files,
|
|
'excludes': [
|
|
'tkinter', 'PyQt4', 'PyQt5', 'AppKit', 'Foundation', 'IPython',
|
|
'OpenSSL', 'curses', 'test', 'unittest', 'matplotlib', 'asyncpg'
|
|
],
|
|
'silent': True # 디버그 메시지 활성화
|
|
|
|
}
|
|
|
|
# 애플리케이션 메인 파일 및 설정
|
|
base = None
|
|
if sys.platform == 'win32':
|
|
base = 'Win32GUI'
|
|
|
|
executables = [
|
|
Executable('main.py', base=base, target_name='AutoPercenty3.exe')
|
|
]
|
|
|
|
# Setup 설정
|
|
setup(
|
|
name='AutoPercenty3',
|
|
version='3.4.1',
|
|
description='자동화도구',
|
|
options={'build_exe': build_exe_options},
|
|
executables=executables
|
|
)
|