Использование 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 &