Предложение сделать исходный код моего проекта на Python - PullRequest
0 голосов
/ 14 июня 2019

Я новичок в python и pyqt5. Я написал простой проект на python и pyqt5, и теперь я хочу закрыть исходный код, чтобы не видеть мой исходный код. Я думаю, что obfuscate я могу сделать это, поэтому я установил pyminifier.

sudo apt install python-setuptools
pip3 install pyminifier

В моем проекте у меня есть несколько классов. По этой команде я могу obfuscate один класс моего проекта:

pyminifier --obfuscate --gzip MainWindow.py 
import zlib, base64
exec(zlib.decompress(base64.b64decode('eJytVU1v2zAMvftXaLnUGQJtl10G+NAmHbAObfPRIAWGwVBtylZrS64k56PYj59oO46dpNtlh8QW+UQ9PlI01yonS3HLhF.....

Вышеуказанный вывод отображается в моем терминале после запуска pyminifier --obfuscate.

Должен ли он запускаться для каждого класса и копировать код вывода в другой новый файл?

Если я это сделаю, я думаю, что эти классы, которые импортированы вместе должным образом, не знают друг друга, и, наконец, приложение не будет запущено !!! Я прав?

Редактировать

Я запутываю точку входа в мой проект с помощью этой команды:

pyminifier --obfuscate --gzip Main.py
import zlib, base64
exec(zlib.decompress(base64.b64decode('eJzLzC3ILypRKK4s5sqyBZJ6qRWZJVzuYGZiUXoZV1pRfq5CQGVgialeYEl4Zkp6akmxQiZEV6BjQUFOZnJiSWZ+HkShb2JmXnhmXkp+OUwNQgSomMvHFlmPhrsmV6UtigoNTa4sDR+gK1KTNTQ1uQAalDgb')))
# Created by pyminifier (https://github.com/liftoff/pyminifier)

и я скопировал эти коды в другой файл file.py, и я запустил приложение, но я получил сообщение об ошибке:

python new.py 
Traceback (most recent call last):
  File "new.py", line 2, in <module>
    exec(zlib.decompress(base64.b64decode('eJzLzC3ILypRKK4s5sqyBZJ6qRWZJVzuYGZiUXoZV1pRfq5CQGVgialeYEl4Zkp6akmxQiZEV6BjQUFOZnJiSWZ+HkShb2JmXnhmXkp+OUwNQgSomMvHFlmPhrsmV6UtigoNTa4sDR+gK1KTNTQ1uQAalDgb')))
  File "<string>", line 8
    j(L.exec())
           ^
SyntaxError: invalid syntax

1 Ответ

1 голос
/ 14 июня 2019

Вы запускаете программу на Python 3 с Python 2?Сообщение об ошибке имеет смысл, только если вы используете Python 2, где exec было ключевым словом.

Для запутывания нескольких файлов см. http://liftoff.github.io/pyminifier/pyminifier.html:

Теперь Pyminifier может минимизировать /запутать произвольное количество скриптов Python за один раз.Например, ./pyminifier.py -O *.py минимизирует и запутывает все файлы в текущем каталоге, заканчивающиеся на .py.Чтобы избежать проблем с использованием дифференцированных запутанных идентификаторов в нескольких файлах, pyminifier будет отслеживать то, что заменяет, через таблицу поиска, чтобы гарантировать, что foo_module.wh независимо от того, что получает одинаковую замену во всех исходных файлах. Добавлено в версии 2.0

...