Как заставить cx_Freeze компилировать подмодули в файлы общего объекта (.so)?

#python #python-3.x #cx-freeze

#python #python-3.x #cx-freeze

Вопрос:

Предыстория

  • Я работаю в компании, которая пишет код для управления телевизионными экранами, на которых будет воспроизводиться реклама, загруженная через Интернет.
  • Мой босс хочет скомпилировать исходный код, прежде чем мы передадим его на фабрику, которая будет производить компьютеры с контроллерами экрана, чтобы код нельзя было легко скопировать / переделать.
  • Мой босс решил, что .pyc файлы слишком легко перепроектировать, и предпочел бы компилировать в двоичные (?) файлы, один из типов которых (?), Похоже .so , файлы.
  • Сейчас я пытаюсь использовать cx_Freeze для преобразования всего нашего исходного кода в .so файлы.

Проблема

Когда я запускаю python setup.py build (команда, в которой cx_Freeze «компилирует» наше приложение), кажется, что только один файл, который я обозначаю как «основной», преобразуется в .so файл, в то время как остальная часть нашего исходного кода преобразуется в .pyc . Мы хотим, чтобы весь наш код был .so файлами.

Что я пробовал

  • Я попытался просмотреть документацию cx_Freeze, но не вижу, как выполнить то, что мы пытаемся сделать.

Ответ №1:

Это невозможно.

Я отправил электронное письмо создателю cx_Freeze (Энтони Туининга), и это был его ответ:

cx_Freeze не имеет такой возможности. Он помещает весь свой скомпилированный код Python (файлы .pyc) в zip-файл. Технически, есть способ сделать это, но cx_Freeze этого не делает. Поскольку он использует компилятор C, он более сложный и подвержен ошибкам.