1. Python генерирует exe-файлы.
1. Используйте подсказку Анаконды
(1). Откройте подсказку Анаконды,
pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用了清华镜像
# 由于pyinstaller生成exe文件时会把所在的虚拟环境的所有包都进行打包,所以建议新建一个虚拟环境安装pyinstaller,并在新建的环境安装需要转exe文件的py文件import的包
(2) Переключитесь на среду, используемую проектом, в Prompt , а затем запустите pyinstaller.
pyinstaller -F -w C:\Users\main.py
# -F 生成单一exe文件
# -w 不调用控制台
(3) Сгенерированный exe-файл находится в папке dist по пути по умолчанию для Prompt.
2. Используйте окно командной строки cmd.
(1) Установите три переменные среды, ориентируясь на путь, по которому находится третья папка pyinstaller.
# D:\CS\anaconda3(python.exe的路径)
# D:\CS\anaconda3\Scripts(pip.exe的路径)
# D:\CS\anaconda3\Lib\site-packages(pyinstaller等扩展包的路径)
# 每个人的安装路径不同,上面是我的安装路径sQW
(2).Открыть cmd
pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
(3).Прямой вход
pyinstaller -F -w C:\Users\main.py
(4).Сгенерированный exe-файл находится в папке dist по пути cmd.
2. Декомпилируйте exe-файл в py-файл.
1.exe файл в файл pyc
(1) Загрузите pyinstxtractor, URL: https://github.com/extremecoders-re/pyinstxtractor .
# 这里我吐槽一下,知乎和CSDN上的相关文章给的安装包版本太老了,里面的imp包python3.4以后就不适用了,直接用会报错,还要花积分,建议从github上直接下载
(2).Подсказка или cmd
python pyinstxtractor.py main.py
#cmd中要将python.exe所在路径添加到环境变量
(3) Создайте папку main.exe_extracted по пути Prompt или cmd, и вы сможете найти main.pyc.
2. Конвертируйте файл pyc в exe.
(1). Установите инструмент декомпиляции uncompyle6.
pip install uncompyle6
# 模块原网址:https://github.com/rocky/python-uncompyle6
# 这是github上认可度最好的反编译工具,也是上面pyinstxtractor推荐的工具
(2).Подсказка или cmd
uncompyle6 main.pyc > main.py
# 反编多个文件 uncompyle6 -o . *.pyc
(3) Создайте файл main.py по пути Prompt или cmd.
Сводка параметров:
- -F, –onefile упаковывает один файл. Если весь ваш код написан в одном файле .py, вы можете использовать его. Если файлов .py несколько, не используйте его.
- -D, –onedir упаковывает несколько файлов и генерирует множество файлов зависимостей в dist, что подходит для написания кода инструмента в виде фреймворка. Лично я рекомендую это, потому что код легко поддерживать.
- -K, –tk включать TCL/TK при развертывании
- -a, –ascii не включает кодировку.Все кодировки включены по умолчанию в версиях Python, поддерживающих Unicode.
- -d, –debug генерирует отладочную версию исполняемого файла.
- -w,–windowed,–noconsole Использовать для выполнения подсистему Windows.Командная строка не открывается при запуске программы (действительно только для Windows).
- -c, – nowindowed, – консоль
Выполнить с использованием подсистемы консоли (по умолчанию) (действительно только для Windows)
pyinstaller -c xxxx.py
pyinstaller xxxx.py --console
- -s, --strip Исполняемые файлы и общие библиотеки будут запускаться через Strip. Обратите внимание, что Strip Cygwin часто делает непригодной для использования обычную Win32 Dll.
- -X, –upx Если установлен UPX (обнаруживается при выполнении Configuration.py), исполняемый файл будет сжат (как и библиотеки DLL в системах Windows) (см. примечание).
- -o DIR, –out=DIR указывает каталог создания файла спецификации. Если он не указан, а текущий каталог является корневым каталогом PyInstaller, каталог для вывода (спецификация и сгенерированные исполняемые файлы) будет создан автоматически. Если нет указан, и текущий каталог не является корневым каталогом PyInstaller, он будет выведен в текущий каталог.
- -p DIR, –path=DIR устанавливает путь импорта (аналогично эффекту использования PYTHONPATH).Вы можете использовать разделители пути (точка с запятой в Windows, двоеточие в Linux) для указания нескольких каталогов.Вы также можете использовать несколько параметров -p для Установите несколько путей импорта и позвольте pyinstaller найти ресурсы, необходимые программе.
- –icon=<ФАЙЛ.ICO>
- Добавьте file.ico в качестве ресурса исполняемого файла (действительно только для систем Windows), измените значок программы pyinstaller -i ico path xxxxx.py
- –icon=<FILE.EXE,N> Добавить n-й значок файла file.exe в качестве ресурса исполняемого файла (действительно только для систем Windows)
- -v ФАЙЛ, –version=ФАЙЛ Использовать verfile в качестве ресурса версии исполняемого файла (действительно только для систем Windows).
- -n NAME, –name=NAME Необязательное имя проекта (сгенерированной спецификации). Если опущено, в качестве имени спецификации будет использоваться имя основного файла первого скрипта.