Оглавление
- Проблема 1: файл .exe слишком большой
- Вопрос 2: pyinstaller несовместим с версией opencv-python
- Вопрос 3: При открытии файла выдается сообщение о том, что файл ***.pyd уже существует
- Вопрос 4: Когда pyinstaller упаковывает, он сообщает, что UPX недоступен.
- Другое: Просмотрите метод успешной настройки CUDA
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 + п , к+б