1 Востаннє редагувалося N1ck (01.08.2017 21:55:27)

Тема: Проблема з конвертацією .py -> .exe.

Доброго дня. Проблема з конвертацією .py -> .exe.
Ось код в set.up

from cx_Freeze import setup, Executable
import os
import sys

os.environ['TCL_LIBRARY'] = 'c:/python/tcl/tcl8.6'
os.environ['TK_LIBRARY'] = 'c:/python/tcl/tk8.6'

buildOptions = dict (
    packages = ['os'],
    excludes = ['tkinter','matplotlib.pyplot','numpy'],
    include_files = ['c:/python/DLLs/tcl86t.dll', 'c:/python/DLLs/tk86t.dll']
    )
base = 'Win32GUI' if sys.platform=='win32' else None    


executables = [
    Executable('plot.py', base=base)
]

setup(name='editor',
      version = '1.0',
      description = '',
      options = dict(build_exe = buildOptions),
      executables = executables)

Ось список бібліотек,що живуть в plot.py.
import matplotlib.pyplot as plt
import numpy as np
import os
from tkinter import *.

А ось помилку,яку видає після створення .exe.

Post's attachments

Безымянный.png 581.64 kb, 5 downloads since 2017-08-01 

2

Re: Проблема з конвертацією .py -> .exe.

Навіщо, навіщо це робити?

Максимальний розмір підпису: 400 символів завдовжки та 4 рядків заввишки
Подякували: Master_Sergius1

3

Re: Проблема з конвертацією .py -> .exe.

Kizyak написав:

Навіщо, навіщо це робити?

Тобто?
Що тут такого?
Виникло питання,після доволі тривалих пошуків в Інтернеті,на жаль не вдалих,я запитав на форумі.

4

Re: Проблема з конвертацією .py -> .exe.

По-перше це дивно уживати абсолютні шляхи до бібліотек(навіть якщо відкомпілиться то працювати на иншій машині не буде), по-друге спробуйте зберегти потрібну бібліотеку(mathplotlib) у теці вашого проєкта.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: N1ck, ostap34PHP, leofun013

5

Re: Проблема з конвертацією .py -> .exe.

0xDADA11C7 написав:

По-перше це дивно уживати абсолютні шляхи до бібліотек(навіть якщо відкомпілиться то працювати на иншій машині не буде), по-друге спробуйте зберегти потрібну бібліотеку(mathplotlib) у теці вашого проєкта.

А такого я не знаходжу

Post's attachments

Безымянный.png 709.79 kb, 4 downloads since 2017-08-01 

6

Re: Проблема з конвертацією .py -> .exe.

from cx_Freeze import setup, Executable
import os
import sys

os.environ['TCL_LIBRARY'] = 'c:/python/tcl/tcl8.6'
os.environ['TK_LIBRARY'] = 'c:/python/tcl/tk8.6'

buildOptions = dict (
    packages = ['os','tkinter','matplotlib','numpy'],
    excludes = [],
    include_files = ['c:/python/DLLs/tcl86t.dll', 'c:/python/DLLs/tk86t.dll']
    )
base = 'Win32GUI' if sys.platform=='win32' else None    


executables = [
    Executable('plot.py', base=base)
]

setup(name='editor',
      version = '1.0',
      description = '',
      options = dict(build_exe = buildOptions),
      executables = executables)

Так працює

Подякували: 0xDADA11C7, koala, ostap34PHP, leofun014

7

Re: Проблема з конвертацією .py -> .exe.

Python - інтерпретована мова і не призначена для "приховування коду". Мало того, той код не так вже й важко дизасемблювати. Звісно, це непогано розібратися як зробити *.ехе, але чи варто? Це як ковтати ножі - виглядить круто, але більше ні для чого не потрібно.

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/
Подякували: koala, ping, leofun013

8

Re: Проблема з конвертацією .py -> .exe.

Master_Sergius написав:

Python - інтерпретована мова і не призначена для "приховування коду". Мало того, той код не так вже й важко дизасемблювати. Звісно, це непогано розібратися як зробити *.ехе, але чи варто? Це як ковтати ножі - виглядить круто, але більше ні для чого не потрібно.

Так було за часів бейсиків, а нині інтерпретованих мов в клясичній імплементації (читає й одразу виконує) майже нема. Спершу код перетворюється або на пікод для виконання віртуальною машиною інтерпретатора або за допомогою JIT - одразу в машинний. Нині компілер од інтерпретера відрізняється лише здатністю зберігати свій стан у винонуваний файл на диску. Єдиною перепоною у створенні якісних компілерів з інтерпретаторів є конструкція eval(саме тому нейтів JS компілера не існує). Це я відписався про теорію, тепер щодо практики. Ви побачили як священну корову зарізапли скомпілювали, проте я впевнений що ви не замислюючись користуєтесь компільованим Пайтоном й розхвалююте не всі боки цю контору, що її написала - застосунок гугляцького диску для Windows. А висновок простий: все зло в Україні від маншовартости, навіть з компілерами працювати заважає.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

9

Re: Проблема з конвертацією .py -> .exe.

Ну, наприклад, оці "пік" файли можна розібрати, навіть є ось такий сервіс - http://depython.com
З того ж ехе, звісно, навряд чи вийде абсолютно той же код, що був на вході, але прослідкувати логіку можна буде.
Я вважаю (звісно, можу помилятися), що все що зашифровано можна розшифрувати, хіба просто не в тому вигляді )

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/
Подякували: ostap34PHP, leofun012

10

Re: Проблема з конвертацією .py -> .exe.

Все правильно кажете стосовно можливості розшифрування, проте й нейтів програми можна не тількт дизасемблювати, а й в більшості випадків декомпілювати до джерельного коду. То тепер нам нічого не компілювати, бо О Боже мій код після компіляції хтось може переглянути? Якісь нездорові асоціації з компіляцією, їй-богу.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: Master_Sergius, leofun01, N1ck3

11

Re: Проблема з конвертацією .py -> .exe.

Добре, і все ж, а який тоді сенс робити ехе із пайтон коду? Швидше виконуватися не буде, можливо, навіть повільніше, бо туди буде впихувати все, що потрібно для виконання.

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/

12

Re: Проблема з конвертацією .py -> .exe.

Запустити без PYTHON обв'язки жеж. Синтаксичний аналізатор і аналіз вже не потрібні, тому буде швидше.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: leofun011

13

Re: Проблема з конвертацією .py -> .exe.

.pyc!!!

Максимальний розмір підпису: 400 символів завдовжки та 4 рядків заввишки

14

Re: Проблема з конвертацією .py -> .exe.

Master_Sergius написав:

Добре, і все ж, а який тоді сенс робити ехе із пайтон коду? Швидше виконуватися не буде, можливо, навіть повільніше, бо туди буде впихувати все, що потрібно для виконання.

Думаю буде не зайвим пояснити чому це вирішив зробити я.
По-перше,це цікаво. Дізнатися щось нове й подолати проблему,нехай й не відразу.
По-друге,код який я писав буде використовуватися на комп’ютері де немає ані python,ані бібліотек,які потрібні для коректної роботи програми. Тому створити ексешник й встановити на комп в 100 разів легше.
З приводу того,що хтось може дізнтися код,то мені не шкода,там особливого нічого немає

Подякували: 0xDADA11C71

15

Re: Проблема з конвертацією .py -> .exe.

N1ck написав:
Master_Sergius написав:

Добре, і все ж, а який тоді сенс робити ехе із пайтон коду? Швидше виконуватися не буде, можливо, навіть повільніше, бо туди буде впихувати все, що потрібно для виконання.

Думаю буде не зайвим пояснити чому це вирішив зробити я.
По-перше,це цікаво. Дізнатися щось нове й подолати проблему,нехай й не відразу.
По-друге,код який я писав буде використовуватися на комп’ютері де немає ані python,ані бібліотек,які потрібні для коректної роботи програми. Тому створити ексешник й встановити на комп в 100 разів легше.
З приводу того,що хтось може дізнтися код,то мені не шкода,там особливого нічого немає

ще додам - такі завдання часто зустрічаються на upwork and freelancer.com - можна заробти пару доларів.

Подякували: N1ck1

16

Re: Проблема з конвертацією .py -> .exe.

ping написав:
N1ck написав:
Master_Sergius написав:

Добре, і все ж, а який тоді сенс робити ехе із пайтон коду? Швидше виконуватися не буде, можливо, навіть повільніше, бо туди буде впихувати все, що потрібно для виконання.

Думаю буде не зайвим пояснити чому це вирішив зробити я.
По-перше,це цікаво. Дізнатися щось нове й подолати проблему,нехай й не відразу.
По-друге,код який я писав буде використовуватися на комп’ютері де немає ані python,ані бібліотек,які потрібні для коректної роботи програми. Тому створити ексешник й встановити на комп в 100 разів легше.
З приводу того,що хтось може дізнтися код,то мені не шкода,там особливого нічого немає

ще додам - такі завдання часто зустрічаються на upwork and freelancer.com - можна заробти пару доларів.

Вау,приємно вражений,дякую