Проблемы и решения в процессе упаковки pyinstaller как .exe

pyinsatller -F -w main.py 

Проблема 1: файл .exe слишком большой

Команда упаковки:

pyinsatller -F -w main.py 

Обходной путь:
Создал новую виртуальную среду, в которой были переустановлены необходимые библиотеки .

Установите зависимости виртуальной среды:

pip install virtualenv
pip install virtualenvwrapper-win

Найдите, где находится ваш python.exe, и создайте виртуальную среду.

mkvirtualenv -p="E:\\Python\python.exe" pyinenv

Введите cmd в каталог файлов, которые необходимо упаковать, и используйте следующую команду для переключения в виртуальную среду.

workon pyinenv

Используйте команду python main.pyдля запуска основной программы, которую нужно упаковать, и загрузите недостающие модули по порядку в соответствии с всплывающим окном.
Примечание. Вам необходимо переустановить pyqt5 и pyqt5-tools, а также pyinstaller и т. д., и во время этих операций не будет сообщено об ошибках.

При скачивании обнаружил, что cuda в torch занимает много памяти, просто отменил в коде ту часть, которая использует cuda для ускорения, и удалил torch-cuda, и заново скачал torch без cuda, torchvision и т.д.

Ссылка: Решите проблему, связанную с тем, что упакованный exe-файл слишком велик.

Вопрос 2: pyinstaller несовместим с версией opencv-python

После завершения упаковки появится следующее окно.
вставьте сюда описание изображения
Решение . Измените версию opencv-python. pip install opencv-python==4.5.1.48
Я использую версию python и pyinstaller следующим образом:

PyInstaller: 5.1
Python: 3.9.0
opencv-python: 4.5.1.48

Вопрос 3: При открытии файла выдается сообщение о том, что файл ***.pyd уже существует

вставьте сюда описание изображения
Добавьте следующий код между a и p:

for b in a.binaries.copy():  # Traver the binaries.
    for d in a.datas:  #  Traverse the datas.
        if b[1].endswith(d[0]):  # If duplicate found.
            a.binaries.remove(b)  # Remove the duplicate.
            break

После операции замените его этой командой упаковки:

pyinstaller main.spec

参考:Файл предупреждения Pyinstaller --onefile уже существует, но не должен
参考:ПРЕДУПРЕЖДЕНИЕ: файл уже существует, но не должен: C:\Users\workAI\AppData\Local\Temp_MEI132522\torch_C
参考:【Python】Python打包exe报错создает параметры спецификации не действителен, когда указан файл .spec

Вопрос 4: Когда pyinstaller упаковывает, он сообщает, что UPX недоступен.

Решение:
(1) Перейдите на официальный сайт https://upx.github.io/ и загрузите UPX (у меня версия для Windows 64), загрузка представляет собой сжатый пакет.

(2) Разархивируйте, чтобы получить файл upx.exe

(3) Скопируйте исполняемый файл в каталог pyinstaller.exe , у меня это C:\Users\HASEE\Envs\pyinenv\Scripts

Ссылка: UPX недоступен, когда пакеты pyinstaller

Наконец, упаковка готова и может быть успешно использована. (Процесс упаковки занял около 4 минут)
вставьте сюда описание изображения
вставьте сюда описание изображения

Другое: Просмотрите метод успешной настройки CUDA

(1) В cmd обратите внимание на конфигурацию среды cuda, здесь я нахожусь в среде pytorch, поэтому сначала необходимо активировать среду pytorch.
вставьте сюда описание изображения
(2) Войдите в файл python

import torch
print(torch.cuda.is_available())

Возврат True означает, что настройка завершена.

Ссылки для установки CUDA и pytorch до Справки
:
1: Таблица сравнения версии CUDA и версии драйвера видеокарты (обновлено до 2022.10.26 - CUDA11.8)
2: Проверьте установленную версию CUDA
3: win10+Anaconda+pytorch+CUDA11.1 Подробно руководство по установке
4: [Pytorch] установка pytorch (включая подробное руководство по установке cuda)

yi , j знак равно ∑ m знак равно 0 час - 1 ∑ n знак равно 0 ш - 1 ∑ k знак равно 0 c - 1 wm , n , kxi + m , j + n , k + b y_{i,j}=\sum_{ m=0}^{h-1}\sum_{n=0}^{w-1}\sum_{k=0}^{c-1}w_{m,n,k}x_{i+m, j+n,k}+bуя , дж"="м = 0ч - 1п = 0ш - 1к = 0с - 1жм , н , кИкся + м , j + п , к+б

Guess you like

Origin blog.csdn.net/ThreeS_tones/article/details/130656618