Использование pyarmor для обфускации нескольких приложений tornado

Попробуйте замаскировать проект с помощью pyarmor, написанный на языке торнадо с несколькими приложениями.

Для одного приложения со следующей структурой было довольно легко замаскировать, используя pyarmor

.
├── apps
│   ├── __init__.py
│   └── app.py   # show below
└── handler
    ├── __init__.py
    └── myhandler.py
# apps/app.py

import tornado.ioloop
import tornado.web
from handler import MainHandler

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

app = make_app()
server = tornado.httpserver.HTTPServer(app)
server.bind(8888)  # port
server.start(1)
tornado.ioloop.IOLoop.instance().start()

Просто используя следующую команду, где apps/app.py - точка входа для tornado app

cd /myproject
pyarmor obfuscate --src="." -r --output=/path/tp/obs_site apps/app.py

Затем мы получаем выходную папку, которая представляет собой обфусцированный проект, готовый к распространению. Сценарий запуска такой же, как и раньше: python apps/app.py для запуска сервера tornado.


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

Есть идеи, как замаскировать проект с десятками приложений (например, 2 приложения) со следующей структурой, заранее спасибо!

.
├── apps
│   ├── __init__.py
│   ├── app.py
│   └── app2.py
├── handler
│   ├── __init__.py
│   ├── myhandler.py
│   └── myhandler2.py
├── start.sh
└── stop.sh

Вот оболочка start.sh для запуска нескольких приложений

# start.sh
python apps/app.py &
python apps/app2.py &
Вернуться на верх