PyInstaller

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28

здравствуйте, по сабжу я в курсе, что у него имеются специальные параметры Windows​

--version-file FILE = Добавьте ресурс версии из FILE в exe
можно подробностей как этот файл должен называться, его расширение, его структура?
2

Запуск PyInstaller из кода Python​

код:
Код:
import PyInstaller.__main__

PyInstaller.__main__.run([
    'my_script.py',
    '--onefile',
    '--windowed'
])
Эквивалентен: pyinstaller my_script.py --onefile --windowed
я похожую операцию выполняю следующим образом:
в командной строке ввожу:
cd C:\pythonProject
затем:
pyinstaller --onefile main.py
где C:\pythonProject и main.py - путь к каталогу где лежит файл, который требуется превратить в экзешник и название этого файла
верно понимаю свои действия?
и как эти действия совершить из кода Python?
спасибо
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
и как эти действия совершить из кода Python?
у вас же написано...
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
у вас же написано...
Код:
import PyInstaller.__main__

PyInstaller.__main__.run(['main.py', '--onefile'])
так здесь main.py - это из какого файла делаем экзешник? и если он не в папке проекта нужно указывать полный путь?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Код:
import PyInstaller.__main__

PyInstaller.__main__.run(['main.py', '--onefile'])
так здесь main.py - это из какого файла делаем экзешник? и если он не в папке проекта нужно указывать полный путь?
да
и кто вам мешает попробовать?
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
да
и кто вам мешает попробовать?
попробовал:
Код:
import os

import PyInstaller.__main__  # pip install PyInstaller

directory = r'C:\py→exe'
file = directory + '\\main.py'
if not os.path.isdir(directory):
    print(f'Отсутсвует директория: {directory}, это ошибка')
    exit(0)
else: print(f'Директория: {directory} создана')
if not os.path.exists(file):
    print(f'Отсутсвует файл: {file}, это ошибка')
    exit(0)
else: print(f'Файл: {file} создан')

PyInstaller.__main__.run([file, '--onefile'])

print('Работа завершена создан файл .exe')
сообщение Работа завершена создан файл .exe вижу, а самой работы не вижу, ЧЯДНТ? спасибо
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
а самой работы не вижу
какой работы?
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
создания нужного:
 

Вложения

  • photo_2023-02-09_12-02-28.jpg
    photo_2023-02-09_12-02-28.jpg
    15,2 КБ · Просмотры: 4

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
exe в папке dist
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
dist
build
main.spec
в папке
НЕ создаются
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
dist
build
main.spec
в папке

НЕ создаются
попробуйте имя папки поменять, что за стрелочка...
и запись в корень ц, могут требоваться повышенные права
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Код:
directory = r'C:\py_to_exe'
не помогло
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Код:
directory = r'D:\py_to_exe'
тоже увы не создало, нужное создаётся в месте откуда запускаю проект, как поправить?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Код:
directory = r'D:\py_to_exe'
тоже увы не создало, нужное создаётся в месте откуда запускаю проект, как поправить?
сразу нельзя полностью проблему описать...
добавьте параметр --distpath и --workpath
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
так:
Код:
PyInstaller.__main__.run([file, '--onefile', '--distpath'])
?? получаю сообщение:
argument --distpath: expected one argument=аргумент --distpath: ожидается один аргумент
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
так:
Код:
PyInstaller.__main__.run([file, '--onefile', '--distpath'])
?? получаю сообщение:
argument --distpath: expected one argument=аргумент --distpath: ожидается один аргумент
'--distpath C:\\py_to_exe'
вы документацию открывали? я же вам скинул
https://pyinstaller.org/en/stable/usage.html#cmdoption-distpath
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
вы документацию открывали?
так изначально оттуда всё и взял, знаний не хватает....
размышляя на сказанное, опробовал:
Код:
PyInstaller.__main__.run([file, '--onefile', directory])
тоже неправильно, поэтому и создал данную тему))
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
так изначально оттуда всё и взял, знаний не хватает....
размышляя на сказанное, опробовал:
Код:
PyInstaller.__main__.run([file, '--onefile', directory])
тоже неправильно, поэтому и создал данную тему))
написал выше - '--distpath C:\\py_to_exe'
аналогично с --workpath
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Код:
PyInstaller.__main__.run([file, '--onefile', '--distpath' + ' ' + directory])
вроде же так?
error: unrecognized arguments: --distpath D:\py_to_exe=непризнанные аргументы
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Установка auto-py-to-exe с командной строки: pip install auto-py-to-exe
Проверка установленной версии с командной строки: auto-py-to-exe –version
Ответ: auto-py-to-exe 2.29.2
повеселей будет тот же PyInstaller но с гуем))
и всё также создаёт экзешник не там где бы хотелось, создал здесь:
Moving project to: C:\WINDOWS\system32\output
или я НЕ установил вовремя место его создания


но тему хотелось бы добить))
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
сразу нельзя полностью проблему описать...
добавьте параметр --distpath и --workpath
оказывается при вызове из скрипта нет параметра такого
а в варианте с командной строкой есть
пысы - были длинные выходные, было время подумать))
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
вот скомпилировал калькулятор (с гуем - tkinter)
как при вызове избавиться от консоли, она с заголовком
D:\py_to_exe\main.exe
??
 

Форум IT Специалистов