Skip to content

Commit be6ff54

Browse files
build: 优化Nuitka编译配置和依赖包管理
1 parent 468375e commit be6ff54

2 files changed

Lines changed: 106 additions & 26 deletions

File tree

.github/workflows/build-release.yml

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -75,28 +75,42 @@ jobs:
7575
poetry run python -m nuitka \
7676
--standalone \
7777
--onefile \
78-
--follow-imports \
7978
--include-package=discord \
8079
--include-package=websockets \
8180
--include-package=aiosqlite \
82-
--include-package=sqlalchemy \
81+
--include-package=sqlalchemy.engine \
82+
--include-package=sqlalchemy.sql \
83+
--include-package=sqlalchemy.orm \
84+
--include-package=sqlalchemy.ext.asyncio \
85+
--include-package=sqlalchemy.dialects.sqlite \
8386
--include-package=fastapi \
8487
--include-package=uvicorn \
8588
--include-package=httpx \
8689
--include-package=toml \
8790
--include-package=starlette \
8891
--include-package=pydantic \
8992
--include-package=anyio \
90-
--include-package=aiohttp \
93+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
94+
--nofollow-import-to=sqlalchemy.dialects.mysql \
95+
--nofollow-import-to=sqlalchemy.dialects.oracle \
96+
--nofollow-import-to=sqlalchemy.dialects.mssql \
97+
--nofollow-import-to=sqlalchemy.dialects.firebird \
98+
--nofollow-import-to=sqlalchemy.dialects.sybase \
99+
--nofollow-import-to=aiohttp.test_utils \
100+
--nofollow-import-to=unittest \
101+
--nofollow-import-to=test \
102+
--nofollow-import-to=tests \
103+
--nofollow-import-to=pytest \
91104
--include-data-files=pyproject.toml=pyproject.toml \
92105
--output-dir=build \
93106
--output-filename=onedisc.exe \
94-
--lto=yes \
107+
--lto=no \
108+
--jobs=1 \
95109
--windows-icon-from-ico=icon.ico \
96110
--file-version=${{ needs.get-version-number.outputs.VERSION }}.${{ needs.get-version-number.outputs.SUB_VERSION }} \
97111
--product-version=${{ needs.get-version-number.outputs.VERSION }}.${{ needs.get-version-number.outputs.SUB_VERSION }} \
98112
--product-name=OneDisc \
99-
--enable-console \
113+
--windows-console-mode=force \
100114
--file-description="OneBot Implementation for Discord" \
101115
--company-name="IT Craft Development Team" \
102116
--copyright="Copyright (c) 2025 IT Craft Development Team" \
@@ -160,23 +174,36 @@ jobs:
160174
poetry run python -m nuitka \
161175
--standalone \
162176
--onefile \
163-
--follow-imports \
164177
--include-package=discord \
165178
--include-package=websockets \
166179
--include-package=aiosqlite \
167-
--include-package=sqlalchemy \
180+
--include-package=sqlalchemy.engine \
181+
--include-package=sqlalchemy.sql \
182+
--include-package=sqlalchemy.orm \
183+
--include-package=sqlalchemy.ext.asyncio \
184+
--include-package=sqlalchemy.dialects.sqlite \
168185
--include-package=fastapi \
169186
--include-package=uvicorn \
170187
--include-package=httpx \
171188
--include-package=toml \
172189
--include-package=starlette \
173190
--include-package=pydantic \
174191
--include-package=anyio \
175-
--include-package=aiohttp \
192+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
193+
--nofollow-import-to=sqlalchemy.dialects.mysql \
194+
--nofollow-import-to=sqlalchemy.dialects.oracle \
195+
--nofollow-import-to=sqlalchemy.dialects.mssql \
196+
--nofollow-import-to=sqlalchemy.dialects.firebird \
197+
--nofollow-import-to=sqlalchemy.dialects.sybase \
198+
--nofollow-import-to=aiohttp.test_utils \
199+
--nofollow-import-to=unittest \
200+
--nofollow-import-to=test \
201+
--nofollow-import-to=tests \
202+
--nofollow-import-to=pytest \
176203
--include-data-files=pyproject.toml=pyproject.toml \
177204
--output-dir=build \
178205
--output-filename=onedisc \
179-
--lto=yes \
206+
--lto=no \
180207
--assume-yes-for-downloads \
181208
--static-libpython=no \
182209
main.py
@@ -235,23 +262,36 @@ jobs:
235262
poetry run python -m nuitka \
236263
--standalone \
237264
--onefile \
238-
--follow-imports \
239265
--include-package=discord \
240266
--include-package=websockets \
241267
--include-package=aiosqlite \
242-
--include-package=sqlalchemy \
268+
--include-package=sqlalchemy.engine \
269+
--include-package=sqlalchemy.sql \
270+
--include-package=sqlalchemy.orm \
271+
--include-package=sqlalchemy.ext.asyncio \
272+
--include-package=sqlalchemy.dialects.sqlite \
243273
--include-package=fastapi \
244274
--include-package=uvicorn \
245275
--include-package=httpx \
246276
--include-package=toml \
247277
--include-package=starlette \
248278
--include-package=pydantic \
249279
--include-package=anyio \
250-
--include-package=aiohttp \
280+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
281+
--nofollow-import-to=sqlalchemy.dialects.mysql \
282+
--nofollow-import-to=sqlalchemy.dialects.oracle \
283+
--nofollow-import-to=sqlalchemy.dialects.mssql \
284+
--nofollow-import-to=sqlalchemy.dialects.firebird \
285+
--nofollow-import-to=sqlalchemy.dialects.sybase \
286+
--nofollow-import-to=aiohttp.test_utils \
287+
--nofollow-import-to=unittest \
288+
--nofollow-import-to=test \
289+
--nofollow-import-to=tests \
290+
--nofollow-import-to=pytest \
251291
--include-data-files=pyproject.toml=pyproject.toml \
252292
--output-dir=build \
253293
--output-filename=onedisc \
254-
--lto=yes \
294+
--lto=no \
255295
--assume-yes-for-downloads \
256296
main.py
257297

.github/workflows/ci.yml

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,39 @@ jobs:
8181
poetry run python -m nuitka \
8282
--standalone \
8383
--onefile \
84-
--follow-imports \
8584
--include-package=discord \
8685
--include-package=websockets \
8786
--include-package=aiosqlite \
88-
--include-package=sqlalchemy \
87+
--include-package=sqlalchemy.engine \
88+
--include-package=sqlalchemy.sql \
89+
--include-package=sqlalchemy.orm \
90+
--include-package=sqlalchemy.ext.asyncio \
91+
--include-package=sqlalchemy.dialects.sqlite \
8992
--include-package=fastapi \
9093
--include-package=uvicorn \
9194
--include-package=httpx \
9295
--include-package=toml \
9396
--include-package=starlette \
9497
--include-package=pydantic \
9598
--include-package=anyio \
96-
--include-package=aiohttp \
99+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
100+
--nofollow-import-to=sqlalchemy.dialects.mysql \
101+
--nofollow-import-to=sqlalchemy.dialects.oracle \
102+
--nofollow-import-to=sqlalchemy.dialects.mssql \
103+
--nofollow-import-to=sqlalchemy.dialects.firebird \
104+
--nofollow-import-to=sqlalchemy.dialects.sybase \
105+
--nofollow-import-to=aiohttp.test_utils \
106+
--nofollow-import-to=unittest \
107+
--nofollow-import-to=test \
108+
--nofollow-import-to=tests \
109+
--nofollow-import-to=pytest \
97110
--include-data-files=pyproject.toml=pyproject.toml \
98111
--output-dir=build \
99112
--output-filename=onedisc.exe \
100-
--lto=yes \
113+
--lto=no \
114+
--jobs=1 \
101115
--windows-icon-from-ico=icon.ico \
102-
--enable-console \
116+
--windows-console-mode=force \
103117
--assume-yes-for-downloads \
104118
main.py
105119
@@ -167,23 +181,36 @@ jobs:
167181
poetry run python -m nuitka \
168182
--standalone \
169183
--onefile \
170-
--follow-imports \
171184
--include-package=discord \
172185
--include-package=websockets \
173186
--include-package=aiosqlite \
174-
--include-package=sqlalchemy \
187+
--include-package=sqlalchemy.engine \
188+
--include-package=sqlalchemy.sql \
189+
--include-package=sqlalchemy.orm \
190+
--include-package=sqlalchemy.ext.asyncio \
191+
--include-package=sqlalchemy.dialects.sqlite \
175192
--include-package=fastapi \
176193
--include-package=uvicorn \
177194
--include-package=httpx \
178195
--include-package=toml \
179196
--include-package=starlette \
180197
--include-package=pydantic \
181198
--include-package=anyio \
182-
--include-package=aiohttp \
199+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
200+
--nofollow-import-to=sqlalchemy.dialects.mysql \
201+
--nofollow-import-to=sqlalchemy.dialects.oracle \
202+
--nofollow-import-to=sqlalchemy.dialects.mssql \
203+
--nofollow-import-to=sqlalchemy.dialects.firebird \
204+
--nofollow-import-to=sqlalchemy.dialects.sybase \
205+
--nofollow-import-to=aiohttp.test_utils \
206+
--nofollow-import-to=unittest \
207+
--nofollow-import-to=test \
208+
--nofollow-import-to=tests \
209+
--nofollow-import-to=pytest \
183210
--include-data-files=pyproject.toml=pyproject.toml \
184211
--output-dir=build \
185212
--output-filename=onedisc \
186-
--lto=yes \
213+
--lto=no \
187214
--assume-yes-for-downloads \
188215
--static-libpython=no \
189216
main.py
@@ -250,23 +277,36 @@ jobs:
250277
poetry run python -m nuitka \
251278
--standalone \
252279
--onefile \
253-
--follow-imports \
254280
--include-package=discord \
255281
--include-package=websockets \
256282
--include-package=aiosqlite \
257-
--include-package=sqlalchemy \
283+
--include-package=sqlalchemy.engine \
284+
--include-package=sqlalchemy.sql \
285+
--include-package=sqlalchemy.orm \
286+
--include-package=sqlalchemy.ext.asyncio \
287+
--include-package=sqlalchemy.dialects.sqlite \
258288
--include-package=fastapi \
259289
--include-package=uvicorn \
260290
--include-package=httpx \
261291
--include-package=toml \
262292
--include-package=starlette \
263293
--include-package=pydantic \
264294
--include-package=anyio \
265-
--include-package=aiohttp \
295+
--nofollow-import-to=sqlalchemy.dialects.postgresql \
296+
--nofollow-import-to=sqlalchemy.dialects.mysql \
297+
--nofollow-import-to=sqlalchemy.dialects.oracle \
298+
--nofollow-import-to=sqlalchemy.dialects.mssql \
299+
--nofollow-import-to=sqlalchemy.dialects.firebird \
300+
--nofollow-import-to=sqlalchemy.dialects.sybase \
301+
--nofollow-import-to=aiohttp.test_utils \
302+
--nofollow-import-to=unittest \
303+
--nofollow-import-to=test \
304+
--nofollow-import-to=tests \
305+
--nofollow-import-to=pytest \
266306
--include-data-files=pyproject.toml=pyproject.toml \
267307
--output-dir=build \
268308
--output-filename=onedisc \
269-
--lto=yes \
309+
--lto=no \
270310
--assume-yes-for-downloads \
271311
main.py
272312

0 commit comments

Comments
 (0)