В интерактивном интерпретаторе, это автоматически - если нет .py, .pyc будет по-прежнему использоваться:
$ echo 'print "hello"' > test.py
$ python -m compileall .
$ rm test.py
$ python -m test
hello
$
Не могли бы вы попробовать, если это работает так же с API?
Отредактировано, чтобы добавить:
Я согласен с Бер в том, что ваша защита кода будет довольно слабой. -O удалит строки документации, если это не изменит поведения вашей программы, что может усложнить восстановление поведения, но то, что вам действительно нужно, - какое-то запутывание байт-кода.
Я не знаю, существует ли готовый инструмент для запутывания для python, но это звучит жизнеспособно, если вы хотите / можете потратить время (и не слишком глупо делать это и могут отправить вашего собственного переводчика).