Статья Пакуем Python в EXE

Всем известно что питон это интерпретируемый, а не компилируемый язык . И в первую очередь рассчитан для работы в командной строке. Тем не менее, существует много вариантов оформления кода в GUI при необходимости. Но сегодня речь пойдёт об упаковке программы в EXE.

Зачем вообще это надо? Да по сути и не надо в большинстве случаев. Но бывает, что вы написали или скопировали какую-нибудь интересную тулзу, и хотите с ней поделиться. Конечно, если у того, кому вы отправляете прогу есть Python, то проблем нет. А бывает, что человек не шарит совсем в кодинге, и как пользователь тоже не имеет установленного питона нужной версии.

Вот тогда и выручает упаковка файла или файлов в EXE. Такой файл будет запускаться и работать по клику мышки, всё очень просто.

Для сборки файлов в экзешник есть разные приложения. Я рассмотрю самый простой, без всяких заморочек, с которым разберётся любой новичок.

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

Так, нам понадобится подопытный. Для этого я сотряпал простой текстовый редактор, который открывает файл, и после редактирования сохраняет его. Ну или просто в окне можно что-то написать и сохранить.

Код редактора:

Python:
# -*- coding:utf -8 -*-
__version__ = 'Version:1.0'
from tkinter import *
from tkinter import filedialog as fd

root = Tk()
root.title("Textedit  " +str(__version__))
root.resizable(width=False, height=False)
root.geometry("420x300+300+300")
calculated_text = Text(root,height=15, width=50)

def insertText():
    file_name = fd.askopenfilename()
    f = open(file_name)
    s = f.read()
    calculated_text.insert(1.0, s)
    f.close()

def extractText():
    file_name = fd.asksaveasfilename(filetypes=(("TXT files", "*.txt"),
                                        ("HTML files", "*.html;*.htm"),
                                                ("All files", "*.*") ))
    f = open(file_name, 'w')
    s = calculated_text.get(1.0, END)
    f.write(s)
    f.close()  
   
def erase():  
    calculated_text.delete('1.0', END)
   
b1 = Button(text="Открыть",command=insertText)
b1.grid(row=3, column=0, sticky=E, padx=5, pady=8,)
b2 = Button(text="Сохранить", command=extractText)
b2.grid(row=3, column=1, sticky=E, padx=5, pady=8,)
erase_button = Button(text="Очистить", command=erase)
erase_button.grid(row=3, column=2, padx=35, pady=8, sticky="W")

scrollb = Scrollbar(root, command=calculated_text.yview)
scrollb.grid(row=4, column=4, sticky='nsew')
calculated_text.grid(row=4, column=0, sticky='nsew', columnspan=3)
calculated_text.configure(yscrollcommand=scrollb.set)

root.mainloop()

Запускаем прогу, так она выглядит
pyins.png


Выставляем следующие настройки -windowed чтобы прога запускалась без консоли, название выходного файла, onefile чтобы сборка была в один файл, noupx уже стоит по умолчанию ибо сжатие не всегда прокатывает. Ну и собственно выбираете нужный файл питоновский, который будете упаковывать. Также есть возможность выбрать иконку для exe-шника, поддерживается только ICO.

Вот что получилось
pyins2.png


Жмём Build, прога чуток поколдует, выдаст нам сообщение об успешной сборке.
pyins3.png


После этого в папке с конвертором появятся 2 папки
pyins4.png


В папке dist и будет лежать наш готовый дистрибутив в формате EXE. Переместите его куда угодно, а потом обе эти папки можно смело удалять. Теперь проверяем работоспособность выходного файла, кликнув на него.
pyins5.png


Алиллуйя, работает! :)

P.S. Редактор писался второпях, там есть косячок - при сохранении файла, расширение само не ставится, нужно вручную писать. Если кто поправит, буду признателен. Мне уже некогда, уезжаю отдыхать на 2 недели сейчас, так что на форуме меня не будет это время.
 
Последнее редактирование:

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Смотри,на моём -всё прекрасно работает. Скопировал всю папку на флешку, воткнул на другом компе, попытался открыть exe-шник и тут получил ошибку ввиде:
-не найден python38.dll
Нашёл его у себя на компе -> копировал во все папки билдера сначала по очереди, потом во все сразу. Всё равно не видит его. Что делать?

Из этого сообщения не ясно даже какой программой делалась сборка, и и как делалась.
Ничего никуда копировать не нужно, должно само всё подтягиваться. Все dll указывать в include_files=[''] при сборке через cx_Freeze. И уже много раз писалось - Python 3.7.0 это последняя версия, на которой тестировалась программа pyinstaller, на версиях выше часто не работает.
 

Fenix5fire

One Level
01.04.2020
1
1
BIT
0
Здравствуйте, возникла странная проблема. Пытаюсь собрать код, но он не работает из-за PyGame и его музыки. Собирал PyInstaller на 3.7, 3.7.7 и 3.8, но файл либо не запускается (как сейчас), либо запускается, но как только доходит до вызова mixer выдает ошибку. Сейчас вообще запускаться не хочет, уже не помню, как его запускал... В CX_Freeze не запускается
Jf-uoz4hWAM.jpg
Музыку кидал в папку с exe и даже переписывал код под отдельную папку в папке с exe, однако не работает... Конкретный путь привязывать не хочу, все таки лишние заморочки для пользователя

Короче не нашел, как отредачить или удалить... Проблема решена. Вновь положился на чудо и оно случилось. При помощи auto-py-to-exe с версией питона 3.7.0 вложил аудиофайлы в exe и оно заработало. Я уже не могу сказать точно, повлияла на то версия Python или же ещё что-то, но может кому поможет
 
  • Нравится
Реакции: Сергей Попов

google googlov

New member
21.07.2020
2
0
BIT
0
Написал аналог этому PyInstallerGUI на русском языке:

кто скачаеть пожалуйста напишите как вам программа и можно-ли ее как-то дароботать.всем спасибо
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
кто скачаеть пожалуйста напишите как вам программа и можно-ли ее как-то дароботать.всем спасибо

Здравствуйте!

Первая и самая важная рекомендация - пишите программы в IDE, иначе получается трэш. Посмотрите на скриншот - просто невероятное количество предупреждений, больше чем строк кода, 141 проблема. Прямо в импорте выделил косяки - незадействованный дублирующий импорт, и незадействованный модуль в импорте.

Для python рекомендую использовать Pycharm, но можете писать в IDE которая больше нравится, забейте в поиск IDE для Python. Тогда вы будете видеть все недочёты, и исправлять их. Регулярная работа в IDE поможет написать код без ошибок и предупреждений.

Что касается Tkinter, то учитывайте, что в Linux и Windows программа будет смотреться совершенно по-разному. Возможны обрезания или перехлёсты. Для кроссплатформенного решения пользуйтесь PyQt5 например.

363.png
 
  • Нравится
Реакции: google googlov

google googlov

New member
21.07.2020
2
0
BIT
0
Здравствуйте!

Первая и самая важная рекомендация - пишите программы в IDE, иначе получается трэш. Посмотрите на скриншот - просто невероятное количество предупреждений, больше чем строк кода, 141 проблема. Прямо в импорте выделил косяки - незадействованный дублирующий импорт, и незадействованный модуль в импорте.

Для python рекомендую использовать Pycharm, но можете писать в IDE которая больше нравится, забейте в поиск IDE для Python. Тогда вы будете видеть все недочёты, и исправлять их. Регулярная работа в IDE поможет написать код без ошибок и предупреждений.

Что касается Tkinter, то учитывайте, что в Linux и Windows программа будет смотреться совершенно по-разному. Возможны обрезания или перехлёсты. Для кроссплатформенного решения пользуйтесь PyQt5 например.

Посмотреть вложение 43039
Спасибо попробую в Pycharm.А если этот код скомпилировать он же точно также будет работать?
 

suvenir

New member
20.10.2020
1
0
BIT
0
Добрый день! не запускается !
from PIL import Image, ImageTk
ModuleNotFoundError: No module named 'PIL'
Хотя PIL есть!
 

Анахорет

New member
25.11.2020
3
0
BIT
0
Добрый день ув. explorer!
Буду признателен за помощь. Я новичок, изучаю python. Написал простенький калькулятор (на Qt5) для расчетов срока беременности (для жены, она гинеколог). Естественно стал искать, как его скомпилить в exe и Ваша прога сработала идеально. Дальше решил повторить то же на tkinter. Написал пару окошек, пробую скомпилить, не запускается (Fatal error detected, filed to execute script). Все перечитал, не могу разобраться в чем причина... pythone 3.8 (если дело в этом, то ок, но тогда почему Qt компилится?)
В выдаче при компиляции есть вот такой кусок с Warning:
Код:
3946 INFO: Found binding redirects:
[]
3948 INFO: Warnings written to E:\Python\TK\build\calc_tk1\warn-calc_tk1.txt

Заранее благодарю.


import tkinter as tk


class Main(tk.Frame):
def __init__(self, root):
super().__init__(root)
self.init_main()

def init_main(self):
toolbar = tk.Frame(bg='#d7d8e0', bd=2)
toolbar.pack(side=tk.TOP, fill=tk.X)

self.add_img = tk.PhotoImage(file="add.gif")
btn_open_dialog = tk.Button(toolbar,
text='Добавить позицию',
command=self.open_dialog,
bg='#d7d8e0',
bd=0,
compound=tk.TOP,
image=self.add_img)
btn_open_dialog.pack(side=tk.LEFT)

def open_dialog(self):
Child()


class Child(tk.Toplevel):
def __init__(self):
super().__init__(root)
self.init_child()

def init_child(self):
self.title('Добавить доходы/расходы')
self.geometry('400x220+400+300')
self.resizable(False, False)

self.grab_set()
self.focus_set()


if __name__ == "__main__":
root = tk.Tk()
app = Main(root)
app.pack()
root.title("Домашние финансы")
root.geometry("650x450+300+200")
root.resizable(False, False)
root.mainloop()

C:\Users\Anton\venv\Scripts\python.exe E:/Python/TK/PyInstallerGUI.py
38 INFO: PyInstaller: 4.0
38 INFO: Python: 3.8.2
38 INFO: Platform: Windows-10-10.0.18362-SP0
38 INFO: wrote E:\Python\TK\calc_tk1.spec
39 INFO: UPX is not available.
39 INFO: Removing temporary files and cleaning cache in C:\Users\Anton\AppData\Roaming\pyinstaller
44 INFO: Extending PYTHONPATH with paths
['E:\\Python\\TK', 'E:\\Python\\TK']
49 INFO: checking Analysis
50 INFO: Building Analysis because Analysis-00.toc is non existent
50 INFO: Initializing module dependency graph...
51 INFO: Caching module graph hooks...
61 INFO: Analyzing base_library.zip ...
1940 INFO: Processing pre-find module path hook distutils from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path\\hook-distutils.py'.
1940 INFO: distutils: retargeting to non-venv dir 'e:\\python\\lib'
3161 INFO: Caching module dependency graph...
3240 INFO: running Analysis Analysis-00.toc
3241 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by e:\python\python.exe
3288 INFO: Analyzing E:\Python\TK\calc_tk.py
3381 INFO: Processing module hooks...
3381 INFO: Loading module hook 'hook-distutils.py' from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
3382 INFO: Loading module hook 'hook-encodings.py' from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
3432 INFO: Loading module hook 'hook-sysconfig.py' from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
3433 INFO: Loading module hook 'hook-xml.py' from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
3603 INFO: Loading module hook 'hook-_tkinter.py' from 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
3678 INFO: checking Tree
3678 INFO: Building Tree because Tree-00.toc is non existent
3679 INFO: Building Tree Tree-00.toc
3716 INFO: checking Tree
3716 INFO: Building Tree because Tree-01.toc is non existent
3716 INFO: Building Tree Tree-01.toc
3733 INFO: Looking for ctypes DLLs
3735 INFO: Analyzing run-time hooks ...
3737 INFO: Including run-time hook 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py'
3740 INFO: Including run-time hook 'e:\\python\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth__tkinter.py'
3744 INFO: Looking for dynamic libraries
3946 INFO: Looking for eggs
3946 INFO: Using Python library e:\python\python38.dll
3946 INFO: Found binding redirects:
[]
3948 INFO: Warnings written to E:\Python\TK\build\calc_tk1\warn-calc_tk1.txt
3985 INFO: Graph cross-reference written to E:\Python\TK\build\calc_tk1\xref-calc_tk1.html
4003 INFO: checking PYZ
4003 INFO: Building PYZ because PYZ-00.toc is non existent
4003 INFO: Building PYZ (ZlibArchive) E:\Python\TK\build\calc_tk1\PYZ-00.pyz
4583 INFO: Building PYZ (ZlibArchive) E:\Python\TK\build\calc_tk1\PYZ-00.pyz completed successfully.
4589 INFO: checking PKG
4589 INFO: Building PKG because PKG-00.toc is non existent
4590 INFO: Building PKG (CArchive) PKG-00.pkg
6223 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
6239 INFO: Bootloader e:\python\lib\site-packages\PyInstaller\bootloader\Windows-32bit\runw.exe
6239 INFO: checking EXE
6239 INFO: Building EXE because EXE-00.toc is non existent
6239 INFO: Building EXE from EXE-00.toc
6241 INFO: Updating manifest in E:\Python\TK\build\calc_tk1\runw.exe.poilys65
6241 INFO: Updating resource type 24 name 1 language 0
6242 INFO: Appending archive to EXE E:\Python\TK\dist\calc_tk1.exe
6246 INFO: Building EXE from EXE-00.toc completed successfully.
 

Анахорет

New member
25.11.2020
3
0
BIT
0
Код нужно вставлять python а не универсальный, иначе он ломается.
Не очень понял, куда вставлять? В PyInstallerGUI? Я там просто выбираю файл со скриптом и все... Он python, то есть расширение .py
upd. Аа, понял)))
Python:
import tkinter as tk


class Main(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.init_main()

    def init_main(self):
        toolbar = tk.Frame(bg='#d7d8e0', bd=2)
        toolbar.pack(side=tk.TOP, fill=tk.X)

        self.add_img = tk.PhotoImage(file="add.gif")
        btn_open_dialog = tk.Button(toolbar,
                                    text='Добавить позицию',
                                    command=self.open_dialog,
                                    bg='#d7d8e0',
                                    bd=0,
                                    compound=tk.TOP,
                                    image=self.add_img)
        btn_open_dialog.pack(side=tk.LEFT)

    def open_dialog(self):
        Child()


class Child(tk.Toplevel):
    def __init__(self):
        super().__init__(root)
        self.init_child()

    def init_child(self):
        self.title('Добавить доходы/расходы')
        self.geometry('400x220+400+300')
        self.resizable(False, False)

        self.grab_set()
        self.focus_set()


if __name__ == "__main__":
    root = tk.Tk()
    app = Main(root)
    app.pack()
    root.title("Домашние финансы")
    root.geometry("650x450+300+200")
    root.resizable(False, False)
    root.mainloop()
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Всё собралось с первой же попытки

212123.png


Я уже писал ранее что собирать нужно в python 3.7 , у меня Python 3.7.0 для этих целей.
 

Pernat1y

Well-known member
05.04.2018
1 443
135
BIT
0
Ну понятно. Странно просто, что код на Qt собрался без вопросов. Спасибо. А планируется поддержка 3.8)))?

Это не ко мне вопрос, вся информация на
BTW, поддерживает 3.8
 
  • Нравится
Реакции: Анахорет

Mezantrop

Green Team
20.03.2018
53
29
BIT
10
Приветствую.
Попробовал использовать Pyinstaller для сборки одного скрипта. Собирать собирает (правда есть предупреждения при сборке), но при запуске экзешника вылетает ошибка с загрузкой dll
Использую Python 3.9 и последнюю версию Pyinstaller
Python:
PS E:\1-bsgs> pyinstaller --onefile search.py
123 INFO: PyInstaller: 4.2
124 INFO: Python: 3.9.2
124 INFO: Platform: Windows-10-10.0.19041-SP0
128 INFO: wrote E:\1-bsgs\search.spec
134 INFO: UPX is not available.
138 INFO: Extending PYTHONPATH with paths ['E:\\1-bsgs', 'E:\\1-bsgs']
157 INFO: checking Analysis
157 INFO: Building Analysis because Analysis-00.toc is non existent
157 INFO: Initializing module dependency graph...
162 INFO: Caching module graph hooks...
178 WARNING: Several hooks defined for module 'win32ctypes.core'. Please take care they do not conflict.
186 INFO: Analyzing base_library.zip ...
5391 INFO: Processing pre-find module path hook distutils from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path\\hook-distutils.py'.
5393 INFO: distutils: retargeting to non-venv dir 'c:\\python39\\lib'
9828 INFO: Caching module dependency graph...
10033 INFO: running Analysis Analysis-00.toc
10067 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable required by c:\python39\python.exe
10270 WARNING: lib not found: api-ms-win-core-path-l1-1-0.dll dependency of c:\python39\python39.dll
10770 INFO: Analyzing E:\1-bsgs\search.py
12239 INFO: Processing pre-find module path hook site from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path\\hook-site.py'.
12242 INFO: site: retargeting to fake-dir 'c:\\python39\\lib\\site-packages\\PyInstaller\\fake-modules'
15800 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module\\hook-urllib3.packages.six.moves.py'.
18502 INFO: Processing module hooks...
18502 INFO: Loading module hook 'hook-certifi.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
18510 INFO: Loading module hook 'hook-pycparser.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
18512 INFO: Loading module hook 'hook-win32ctypes.core.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
18834 INFO: Loading module hook 'hook-difflib.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
18838 INFO: Excluding import of doctest from module difflib
18838 INFO: Loading module hook 'hook-distutils.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
18841 INFO: Loading module hook 'hook-distutils.util.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
18844 INFO: Excluding import of lib2to3.refactor from module distutils.util
18845 INFO: Loading module hook 'hook-encodings.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
18982 INFO: Loading module hook 'hook-heapq.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
18985 INFO: Excluding import of doctest from module heapq
18985 INFO: Loading module hook 'hook-lib2to3.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
19178 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
19182 INFO: Excluding import of test.support from module multiprocessing.util
19182 INFO: Excluding import of test from module multiprocessing.util
19183 INFO: Loading module hook 'hook-pickle.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
19187 INFO: Excluding import of argparse from module pickle
19187 INFO: Loading module hook 'hook-pkg_resources.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
19768 INFO: Processing pre-safe import module hook win32com from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\pre_safe_import_module\\hook-win32com.py'.
20328 WARNING: Hidden import "pkg_resources.py2_warn" not found!
20329 WARNING: Hidden import "pkg_resources.markers" not found!
20333 INFO: Excluding import of __main__ from module pkg_resources
20334 INFO: Loading module hook 'hook-setuptools.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21311 INFO: Import to be excluded not found: 'setuptools.py33compat'
21312 INFO: Import to be excluded not found: 'setuptools.py27compat'
21312 INFO: Loading module hook 'hook-sysconfig.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21314 INFO: Loading module hook 'hook-xml.dom.domreg.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21315 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21316 INFO: Loading module hook 'hook-xml.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21317 INFO: Loading module hook 'hook-_tkinter.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
21566 INFO: checking Tree
21567 INFO: Building Tree because Tree-00.toc is non existent
21567 INFO: Building Tree Tree-00.toc
21698 INFO: checking Tree
21699 INFO: Building Tree because Tree-01.toc is non existent
21699 INFO: Building Tree Tree-01.toc
21882 INFO: checking Tree
21882 INFO: Building Tree because Tree-02.toc is non existent
21882 INFO: Building Tree Tree-02.toc
22065 INFO: Loading module hook 'hook-pythoncom.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
22619 INFO: Loading module hook 'hook-pywintypes.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
23245 INFO: Loading module hook 'hook-win32com.py' from 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
24368 INFO: Loading module hook 'hook-setuptools.msvc.py' from 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks'...
24373 INFO: Excluding import of numpy from module setuptools.msvc
24414 INFO: Looking for ctypes DLLs
24517 INFO: Analyzing run-time hooks ...
24527 INFO: Including run-time hook 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py'
24535 INFO: Including run-time hook 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgres.py'
24548 INFO: Including run-time hook 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_win32api.py'
24551 INFO: Including run-time hook 'c:\\python39\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_win32comgenpy.py'
24561 INFO: Including run-time hook 'c:\\python39\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\rthooks\\pyi_rth_certifi.py'
24606 INFO: Looking for dynamic libraries
25277 INFO: Looking for eggs
25281 INFO: Using Python library c:\python39\python39.dll
25283 INFO: Found binding redirects:[]
25302 INFO: Warnings written to E:\1-bsgs\build\search\warn-search.txt
25476 INFO: Graph cross-reference written to E:\1-bsgs\build\search\xref-search.html
25510 INFO: checking PYZ
25516 INFO: Building PYZ because PYZ-00.toc is non existent
25517 INFO: Building PYZ (ZlibArchive) E:\1-bsgs\build\search\PYZ-00.pyz
27580 INFO: Building PYZ (ZlibArchive) E:\1-bsgs\build\search\PYZ-00.pyz completed successfully.
27612 INFO: checking PKG
27612 INFO: Building PKG because PKG-00.toc is non existent
27613 INFO: Building PKG (CArchive) PKG-00.pkg
34293 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
34299 INFO: Bootloader c:\python39\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
34300 INFO: checking EXE
34301 INFO: Building EXE because EXE-00.toc is non existent
34309 INFO: Building EXE from EXE-00.toc
34318 INFO: Copying icons from ['c:\\python39\\lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-console.ico']
34320 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes
34325 INFO: Writing RT_ICON 1 resource with 3752 bytes
34326 INFO: Writing RT_ICON 2 resource with 2216 bytes
34341 INFO: Writing RT_ICON 3 resource with 1384 bytes
34342 INFO: Writing RT_ICON 4 resource with 37019 bytes
34343 INFO: Writing RT_ICON 5 resource with 9640 bytes
34357 INFO: Writing RT_ICON 6 resource with 4264 bytes
34358 INFO: Writing RT_ICON 7 resource with 1128 bytes
34370 INFO: Updating manifest in E:\1-bsgs\build\search\run.exe.jyjobsxz
34375 INFO: Updating resource type 24 name 1 language 0
34392 INFO: Appending archive to EXE E:\1-bsgs\dist\search.exe
34883 INFO: Building EXE from EXE-00.toc completed successfully.

Код:
Traceback (most recent call last):
  File "search.py", line 6, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "bit\__init__.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "bit\format.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "coincurve\__init__.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "coincurve\context.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "coincurve\flags.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "coincurve\_libsecp256k1.py", line 239, in <module>
  File "cffi\api.py", line 150, in dlopen
  File "cffi\api.py", line 832, in _make_ffi_library
  File "cffi\api.py", line 827, in _load_backend_lib
OSError: cannot load library 'C:\Users\7636~1\AppData\Local\Temp\_MEI115682\coincurve\libsecp256k1.dll': error 0x7e.  Additionally, ctypes.util.find_library() did not manage to locate a library called 'C:\\Users\\7636~1\\AppData\\Local\\Temp\\_MEI115682\\coincurve\\libsecp256k1.dll'
[9520] Failed to execute script search

Подскажите как решить ?
Добавление в --paths пути до dll не помогает
Сам по себе скрипт работает прекрасно.
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
В вашу сборку не попала libsecp256k1.dll
Если эта dll установлена и работает в системе, то для её захвата можете воспользоваться другим
В этом топике внизу под спойлером исходник как добавить dll, можно использовать его в качестве примера.
 

Mezantrop

Green Team
20.03.2018
53
29
BIT
10
В вашу сборку не попала libsecp256k1.dll
Если эта dll установлена и работает в системе, то для её захвата можете воспользоваться другим
В этом топике внизу под спойлером исходник как добавить dll, можно использовать его в качестве примера.
Спасибо, но дело в том, что мне нужно получить один исполняемый файл, а тот сборщик который вы предложили не позволяет этого.
Dll установлена и работает в системе, находится по пути C:\Python39\Lib\site-packages\coincurve
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Используйте при сборке флаг --add-data libsecp256k1.dll или --add-binary libsecp256k1.dll кинув саму dll-ку в папку с собираемым py-файлом
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!