LINUX.ORG.RU
ФорумAdmin

pyinstaller нужные пакеты

 ,


0

1

Уважаемые форумчане, как можно точно вычислить пакеты для включения либо выключения в spec-file pyinstaller?

Пытался так:

a = Analysis(['convert.py'],
             pathex=['C:\\Users\\Mikola\\Desktop\\lib_tools'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[
'PIL', 
'PyQt5', 
'matploltib', 
'scipy', 
'alabaster',
'babel',
'bottleneck',
'certifi',
'cryptography',
'cryptography-2.7-py3.7.egg-info',
'Cython',
'docutils',
'gevent',
'gevent-1.4.0-py3.7.egg-info',
'Include',
'IPython',
'jedi',
'jsonschema',
'lib2to3',
'lxml',
'markupsafe',
'matplotlib',
'mkl_fft',
'mpl-data',
'numexpr',
'numpy',
'psutil',
'pytz',
'sphinx',
'sqlalchemy',
'tables',
'tcl',
'tk',
'tornado',
'win32com',
'zmq'],
...

но в каталоге набросано много dll, явно не потребных:

api-ms-win-core-console-l1-1-0.dll             api-ms-win-core-processthreads-l1-1-1.dll  api-ms-win-crt-process-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll            api-ms-win-core-profile-l1-1-0.dll         api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll               api-ms-win-core-rtlsupport-l1-1-0.dll      api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll       api-ms-win-core-string-l1-1-0.dll          api-ms-win-crt-string-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll                api-ms-win-core-synch-l1-1-0.dll           api-ms-win-crt-time-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll                api-ms-win-core-synch-l1-2-0.dll           api-ms-win-crt-utility-l1-1-0.dll
api-ms-win-core-file-l2-1-0.dll                api-ms-win-core-sysinfo-l1-1-0.dll         libcrypto-1_1-x64.dll
api-ms-win-core-handle-l1-1-0.dll              api-ms-win-core-timezone-l1-1-0.dll        libssl-1_1-x64.dll
api-ms-win-core-heap-l1-1-0.dll                api-ms-win-core-util-l1-1-0.dll            MSVCP140.dll
api-ms-win-core-interlocked-l1-1-0.dll         api-ms-win-crt-conio-l1-1-0.dll            python37.dll
api-ms-win-core-libraryloader-l1-1-0.dll       api-ms-win-crt-convert-l1-1-0.dll          pywintypes37.dll
api-ms-win-core-localization-l1-2-0.dll        api-ms-win-crt-environment-l1-1-0.dll      sqlite3.dll
api-ms-win-core-memory-l1-1-0.dll              api-ms-win-crt-filesystem-l1-1-0.dll       sybdb.dll
api-ms-win-core-namedpipe-l1-1-0.dll           api-ms-win-crt-heap-l1-1-0.dll             ucrtbase.dll
api-ms-win-core-processenvironment-l1-1-0.dll  api-ms-win-crt-locale-l1-1-0.dll           VCRUNTIME140.dll
api-ms-win-core-processthreads-l1-1-0.dll      api-ms-win-crt-math-l1-1-0.dll

Приложение использует только:

pymssql
pandas



Последнее исправление: mikolapython (всего исправлений: 1)

На этом форуме нужно писать по-русски. Убери все искажения русского языка из своего поста, пожалуйста.

Deleted
()
Ответ на: уася от anonymous

уася
транзитивно жи еще зависимости подсасываются

Пиетя, я спрашиваю о том, как точно вычислить список библиотек (пакетов), необходимых программе? Или, как можно автоматически вычислить список пакетов для исключения? Методом перебора долго приходится подбирать этот список.

P.S.1. Похоже, что в pyinstaller можно только исключать пакеты

a = Analysis(
        excludes=['PIL', # ...
# ...
a.binaries = a.binaries - TOC([
 ('sqlite3.dll', None, None),
# ...

Но, может кому-то известна схема включения только нужных пакетов.

mikolapython
() автор топика

Pyinstaller включает только необходимые пакеты, анализируя include'ы. Те библиотеки, которые у вас в первом посте — необходимы для запуска самого python (ну, может, кроме libcrypto/libssl и sqlite).

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Тогда почему, например, без явного указания исключить PyQt5:

excludes=['PyQt5' # ...
pyinstaller пытается уставить его
Cannot find existing PyQt5 plugin directories

При этом в собираемом скрипте, PyQt5 не используется.

mikolapython
() автор топика
Ответ на: комментарий от mikolapython

Наверное, какая-то зависимость его загружает, или зависимость зависимости.

ValdikSS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.