Форум сайта python.su
0
Написал программку которая крутится в цикле(код не хотелось бы выкладывать). Но надеюсь, что это и не важно.
Скомпелировал байт-код таким образом:
import py_compile py_compile.compile("main.py") py_compile.compile("twofile.py")
Офлайн
294
самое простое обьяснение в какойто момент вызываеться исключение, логирейте все исклчения в файл и смотрите.\
https://stackoverflow.com/questions/8050775/using-pythons-logging-module-to-log-all-exceptions-and-errors
[code python][/code]
Офлайн
253
PEHDOM
логирейте все исклчения в файл
8toni8Запустите консоль ручками, уберите start :python main.pyc. Тогда у вас останется открытая консоль и в ней будут видны сообщения.
одскажите пожалуйста, может быть я не правильно запускаю программу?
Офлайн
0
doza_andДа, я пока создавал тему, уже понял, что нужно в IDLE запустить, уже кстати выловил ошибку, буду разбираться…
Запустите консоль ручками, уберите start :python main.pyc. Тогда у вас останется открытая консоль и в ней будут видны сообщения.
doza_andПо, тому что я пока не понимаю, надо вообще компилировать свои файлы в байт-код? А как вообще можно сделать код закрытым? В Си++, там понятно, откомпелировал и все. А с Питоном как быть не понятно
Не очень понятно зачем компилировать? Питоновские файлы и так прекрасно запустятся.
Офлайн
253
8toni8Короткий ответ - никак. Вы выбрали не тот язык если хотите секретить код. pyo файлы легко декмпилируются и по сути от исходников отличаются только отсутствием комментариев.
А как вообще можно сделать код закрытым?
Отредактировано doza_and (Апрель 22, 2018 13:22:18)
Офлайн
0
Ну а если например пишите программу для заказчика на Python, то как вы себя обезопаситиваете к примеру от “кидка”? Ведь заказчик сможет крутить ваш код как хочет…
Офлайн
294
давайте для начала определимся с терминами “от “кидка” и ”крутить ваш код как хочет“.что вы конкретно хотите?
Эту проблему можно разделить на несколько частей юридическую,комерческую, психологическую и техническую.
Юридическая понятно, заранее договариваетесь и прописываете в договоре, что кому и в каком порядке передает и оплачивает, у кого остаются исключительные права на программу и прочее.. например что исходники вы передаете только после подписи заказчиком акта, где указывается степень готовности программы, и сумму которую заказчик вам за это обязуется оплатить. По крайне мере с этой бумагой вы можете пойти в суд, если конечно заказчик проживает с вами в одной стране, а не находиться гденить на голопагоских островах. В любом случае вам нужна консультация юриста по этому вопросу а не програмиста.
Комерческая: Лицензии. Контракты. Условия и положения. Это все еще работает, даже когда люди могут читать код. Обратите внимание, что некоторые из ваших компонентов на базе Python могут потребовать, чтобы вы платили комиссионные, прежде чем продавать программное обеспечение с использованием этих компонентов. Кроме того, некоторые лицензии с открытым исходным кодом запрещают вам скрывать источник или источник этого компонента.
Психологическая основывается на том что в общем в большинсвтве случаев в этом мире все основывается на доверии. Заранее проверте заказчика, поищите отзывы о нем, пообщайтесь с теми кто раньше работал с ними и просто не связывайтесь с ненадежными людьми.
Техническая часть во многом зависит от того что вы делаете и что вы хотите?
1. Быть единственным ”погромистом" у которого есть исходники и который может вносить изменения в функционал? Для этого вы выбрали не тот ЯП . Хотя есть шифрование и трансляция в модули расширения с помощью Cython или Nuitka.
вот пару статей на эту тему:
https://habr.com/post/138537/
https://habr.com/post/189772/
Правда для этого вам нужно сразу писать код с оглядкой на это. Мой опыт работы с Nuitka говорит о том что то что произвольно написаный код работающий в пайтоне не всегда также работает после трансляции.
2. Чтобы заказчик заплатил вам, а не сказал ну мы посмотрим сейчас, протестируем, а сам исчез с вашим кодом?
Тут во многом зависит от того что вы делаете. Если это сайт какой на джанге, фласке, бутылке и тому подобному, то просо не давайте исходники. Давайте только адрес сайта на посмотреть снаружи. Заказчик заходит, нажимает кнопочки формочки, если его устраивает производит оплату и получает исходники.
Другое дело если вы пишете самостоятельную программу, или модуль к уже существующей программе.
тогда можно давать ограниченый удаленный доступ чтобы заказчик мог подключиться к удаленному хосту запустить-протестировать на нем программу\модуль, но не мог скопировать исходники.
НО всеже ИМХО, главное не связывайтесь с ненадежными заказчиками, как бы вам ваша внутрення жаба не говрила обратное. Несмотря на все ваши заморочки, договоры, и технические ухищрения, “кидала” когда поймет что кинуть не выйдет, всеравно не заплатит , а просто пойдет искать другого лоха, а вы потратите на него свое время и нервы.
[code python][/code]
Отредактировано PEHDOM (Июнь 23, 2018 09:55:26)
Офлайн
186
> А как вообще можно сделать код закрытым?
В этом тебе поможет cython.
Офлайн